收藏
回答

调用ci的uploadFunction上传云函数停留在deploye无法退出?

使用miniprogram-ci的uploadFunction想来批量更新云函数,测试的过程中,发现一直停留在deployed状态下,但是IDE中的云开发控制台显示,云函数已经更新成功了。

npm版本:6.1.0

node版本:8.9.1

miniprogram-ci版本:1.0.83

OS:macOS Catalina 10.15.6

IED版本:1.03.2010232

命令行显示:

will upload code under cloudfunctions/login as cloudfunction 'login' of env release-xxxx. remote-npm-install: true
checking cloudfunctio status, will only proceed on normal status
env release-xxxx's cloudfunction 'login' status: Active
get cloudfunction info done
will update cloudfunction
zip file done, updating cloudfunction code
cloudfunction code updated, installing dependencies in the cloud and deploying
env release-xxxx's cloudfunction 'login' status: Updating
env release-xxxx's cloudfunction 'login' status: Active
deployed


~~~~~~2020年12月1日分割线~~~~~~

我就想看看,究竟有没有人回复

~~~~~~2021年月1日15日分割线~~~~~~

腾讯还是牛逼的,厉害了

最后一次编辑于  2021-01-15
回答关注问题邀请回答
收藏

3 个回答

  • jeff
    jeff
    2020-12-28

    一模一样得问题。。。

    更新到这里吧,结论还是官方的bug。下面是一个直接修改快速修复的方法,反正这类命令行应该都在于CI脚本里面,结合到脚本的npm install后面就好。

    sed -i 's/setTimeout/((callback,delay) => {return setTimeout(callback,delay).unref();})/g' node_modules/miniprogram-ci/dist/cloud/uploadFunction.js
    
    2020-12-28
    有用 3
    回复 2
    • jeff
      jeff
      2020-12-28
      自问自答:  应该是官方的bug。  问题出在`node_modules/miniprogram-ci/dist/cloud/uploadFunction.js`处,上传的时候,开了setTimeout检测超时。但是干完活了,忘记清理了。


      实证:  默认`maxWaitTimeout`是9e5,就是900秒,15分钟。直接修改为10秒,发现显示deployed之后,稍微等一下,就结束了。


      NodeJS关于Timer的行为以及可以用的修改这种等待的方法:https://nodejs.org/en/docs/guides/timers-in-node/#leaving-timeouts-behind
      2020-12-28
      回复
    • 静文
      静文
      2021-01-04
      这个解决思路可以的,不过还是要吐槽一下,这个上传工具
      2021-01-04
      回复
  • NULL
    NULL
    2023-05-28

    2023年了,这个 BUG 依旧没有修复。

    2023-05-28
    有用
    回复
  • 沁塵
    沁塵
    2022-03-29

    2022 年了,这个 BUG 依旧没有修复。

    2022-03-29
    有用
    回复
登录 后发表内容
问题标签