我有一个应用程序,它在后台执行一些工作,使用默认的云任务来调度/执行流程。
我希望这份工作能够运行几分钟,或者至少了解实际的限制是什么,以及我能做些什么。
根据推送队列(似乎相当于现代的云任务?(上的文档,自动扩展的截止日期是10分钟,基本扩展的截止时间是24小时。
然而,我的工作似乎在两分钟后就崩溃了。115秒是好的,121秒是崩溃。在所有情况下,工作负载和资源消耗都是相同的。消息总是无效的"处理此请求的进程意外终止。这可能会导致新进程用于向应用程序发出的下一个请求。(错误代码203("。
无论我使用的是自动缩放F2实例,还是基本缩放B2,都无关紧要。2分钟后终止。
根据关于节点请求处理的文档,"请求处理程序"有60秒的超时
最后超时是多少?是1分钟、2分钟还是10分钟?如果我想让我的工作持续5到30分钟,我能做些什么来改变它吗。
简而言之,我认为可以帮助您的场景的最佳推断是Node的请求超时,默认情况下正好有2分钟的超时
阅读您的问题后,请阅读长文。我决定用创建PoC
- 创建了仅使用内置HTTP服务器的Dummy Node 8服务
- 创建了一个URL路径,该路径可以有人为的长响应(使用
setTimeout
(,并可以指定请求的持续时间(例如,/lr/300
意味着它将在大约5分钟内做出响应( - 将其部署到
default
以外的GAE服务(Node8,自动缩放( - 创建了请求
/lr/540
到上述服务的云任务"任务">
之前:之前
正如你所看到的,云任务和应用程序引擎在等待超过2分钟时出现问题,并且收到了与你收到的相同的无益消息(处理此请求的进程意外死亡…(
然后:编码
我写这行是为了增加全局请求超时
结果:结果
在我的情况下,我可以放心地说,是节点请求超时导致了问题。我希望这对你也有用。