收藏
回答

2020-01-16 18:11 云函数定时任务报了一波错误,具体报错详情见下面错误信息

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 工具 wx4bfbc8e64eff19eb 2.10.1

更新备注:的确使用了 promise.all + reduce 方法取出的全量数据,但是目前库里只有3条数据,还是会偶发性的报 -501004;


18:11 分 集中报了一波错,大概 14 条:

{
  "message": "errCode: -501004 exceed concurrent request limit | errMsg: [LimitExceeded.NoValidConnection] Connection num overrun. Please improve specifications, but if the problem cannot be solved, contact us.; ",
  "name": "",
  "stack": "Error: errCode: -501004 exceed concurrent request limit | errMsg: [LimitExceeded.NoValidConnection] Connection num overrun. Please improve specifications, but if the problem cannot be solved, contact us.; \n    at Object.returnAsCloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:6052:16)\n    at Object.checkError (/var/user/node_modules/wx-server-sdk/index.js:1378:23)\n    at Promise (/var/user/node_modules/wx-server-sdk/index.js:1508:33)\n    at \n    at process._tickCallback (internal/process/next_tick.js:188:7)",
  "userInfo": {
    "appId": "wx4bfbc8e64eff19eb"
  }
}

然后登陆云函数后台查看日志发现,下面提示

日志内容 Request ID: 4c830adf-14b7-4fff-b2cd-3487add8034f
执行时间: 9372.41ms内存使用: 37.93 MB
返回结果 null

日志
START RequestId: 4c830adf-14b7-4fff-b2cd-3487add8034f

Event RequestId: 4c830adf-14b7-4fff-b2cd-3487add8034f


2020-01-16T10:11:53.154Z  Database operation database.queryDocument is longer than 3s. Please check query performance and your network environment.

 
END RequestId: 4c830adf-14b7-4fff-b2cd-3487add8034f

Report RequestId: 4c830adf-14b7-4fff-b2cd-3487add8034f Duration:9372ms Memory:256MB MaxMemoryUsed:37.929688MB


大概从 17: 57 开始,执行时间由 70ms 升到 3、4 秒,中间甚至十几秒,到 18: 11 分后定时任务停止。

最后一次编辑于  2020-02-02
回答关注问题邀请回答
收藏

5 个回答

  • 邓坤力
    邓坤力
    2020-02-05

    超过了同时运行上限(1000)https://developers.weixin.qq.com/miniprogram/dev/wxcloud/billing/quota.html

    2020-02-05
    有用
    回复 5
    • Devil in disguise
      Devil in disguise
      2020-02-05
      不该呀,我这个云函数是个定时任务,每分钟跑一遍,执行耗时大概 60ms 左右,最多不超过 1s,不太理解怎么会超过同时运行上限呢
      2020-02-05
      回复
    • 邓坤力
      邓坤力
      2020-02-06回复Devil in disguise
      现在还会吗,如果会,提供下 appid,环境id,云函数名称
      2020-02-06
      回复
    • Devil in disguise
      Devil in disguise
      2020-02-06回复邓坤力
      最近一波报错是昨天 02-05 14:47,我再观察一段时间吧,有问题再联系您
      2020-02-06
      回复
    • 我是小肥
      我是小肥
      2021-01-25回复邓坤力
      现在这个问题还没有解决吗?我的也是这样的问题,限制1000,也没有事情啊,关键是要能用啊 ~wxb28ab5cb364a41c5,环境xinyiprint-2gmq4bjvf3c7777e,函数名称,readexcel
      2021-01-25
      回复
    • 我是小肥
      我是小肥
      2021-01-25
      能帮忙看看吗?连接是不是不会释放啊?
      2021-01-25
      回复
  • Aiden
    Aiden
    2020-03-04

    遇到同样的错误。这代码有问题吗?

    const cloud = require('wx-server-sdk')
    cloud.init({
      // API 调用都保持和云函数当前所在环境一致
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    const db = cloud.database()
    const MAX_LIMIT = 1000
    exports.main = async (event, context) => {
      // 获取当天 0 点的时间戳
      const today = new Date(new Date().setHours(0, 0, 0, 0)) / 1000;
      // 先取出集合记录总数
      const countResult = await db.collection('Task')
      .where({LastModifiedDate:db.command.gt(today)})
      .count()
      const total = countResult.total
      console.log(total)
      // 计算需分几次取
      const batchTimes = Math.ceil(total / 1000)
      // 承载所有读操作的 promise 的数组
      const tasks = []
      for (let i = 0; i < batchTimes; i++) {
        const promise = db.collection('Task')
        .where({LastModifiedDate:db.command.gt(today)})
        .skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
        tasks.push(promise)
      }
      // 等待所有
      return (await Promise.all(tasks)).reduce((acc, cur) => {
        return {
          data: acc.data.concat(cur.data),
          errMsg: acc.errMsg,
        }
      })
    }
    



    2020-03-04
    有用
    回复 2
    • Devil in disguise
      Devil in disguise
      2020-04-09
      最近还报错吗,我这边最近挺稳定的
      2020-04-09
      回复
    • 孙旭宝
      孙旭宝
      2020-09-07
      db.collection一次最多只能返回100跳数据
      2020-09-07
      回复
  • LiMn
    LiMn
    2020-01-31

    我也遇到这个问题了。。。

    2020-01-31
    有用
    回复 1
    • Devil in disguise
      Devil in disguise
      2020-02-02
      官方也没个回复,一旦报这个错,时而云函数能自动重启,时而不能,烦死了
      2020-02-02
      回复
  • Devil in disguise
    Devil in disguise
    2020-01-19

    2020.01.19 16:35 又报了一波,没有官方人员解答一下吗,搞得定时任务不敢正式使用了,频繁的崩溃,唉

    2020-01-19
    有用
    回复
  • 罗梅光
    罗梅光
    2020-01-17

    是不是超出云开发的套餐限制了?

    2020-01-17
    有用
    回复 1
    • Devil in disguise
      Devil in disguise
      2020-01-17
      理论上应该没有,一波报错之后,重新上传下触发器就又好了,想等一个官方的回复
      2020-01-17
      回复
登录 后发表内容
问题标签