收藏
回答

云函数内定时触发器 处理批量任务 如果超时任务会被终止吗?

云函数内使用定时器处理个任务,云函数时限最高是20s,如果超时,这个定时任务会被终止吗?只是报超时异常,任务仍在执行吗

回答关注问题邀请回答
收藏

2 个回答

  • memory
    memory
    2020-06-06

    我今天遇到一个定时任务云函数超时后被重新调用的问题

    前提:

    1. 这个定时任务云函数的触发频率是10分钟一次,设置20s超时
    2. 今天更新了定时任务云函数代码,只修改index.js,然后点击增量上传,只更新index.js文件


    现象:

    定时任务函数执行时,手动在控制台刷新,某一时刻刷新可能会正好看到这个定时任务云函数调用失败,查看日志是20s超时。但是再次刷新,这个定时任务就显示调用成功了。定时任务云函数执行失败的日志也被正常调用成功的日志给替换了,看不到执行失败的日志。并且对云函数进行云端测试的时候,也是会超时后进行再次调用,后面调用的日志覆盖掉前面调用的日志

    猜测定时任务可能存在的问题:

    1. 调用超时或失败,会重新调用,重新调用的时候使用同一个traceId,导致日志被替换
    2. 由于只更新index.js,可能创建了多份定时任务,一个任务执行时,另一个也在执行,并且正常执行日志替换掉错误日志


    希望定时任务达到的效果:

    1. 不管是否执行错误,只执行一次
    2. 执行多次时,错误日志能够保留下来
    3. 应该去掉这种默认超时后重新调用的逻辑
    2020-06-06
    有用
    回复
  • 李东bbsky
    李东bbsky
    2019-12-25
    超时会被终止
    2019-12-25
    有用
    回复 2
    • memory
      memory
      2020-06-06
      可能超时后会被重复调用,我👇评论描述了这个现象
      2020-06-06
      回复
    • Mr.Tseng
      Mr.Tseng
      2020-09-26
      任务比较耗时,比如要更新数据1个多小时,这种是不是无解了。
      2020-09-26
      回复
登录 后发表内容
问题标签