我有 Cron 作业,它每 30 分钟运行一次,并将要在动态后端 (B2) 上执行的任务排队。后端循环并做一些工作,然后休眠几分钟,然后重复工作,直到几个小时后完成整个工作,之后后端关闭。(直到后端运行,没有新的任务被执行)
现在连续两天,我看到我的后端突然停止(1.5 小时后),出现熟悉的“进程终止,因为后端关闭时间太长。”。我已经搜索了论坛,但无法确定我的后端关闭的确切原因(除了 Appengine 文档提供的理论原因列表之外)。我检查了我的 DS/Memcache 操作、内存,一切看起来都正常。我将后端从 B1 升级到 B2,但没有运气。
Q1。有谁知道如何进一步调试这个问题?
Q2。即使在此之后,我也希望这项工作能够完成。如果我注册了一个关闭挂钩 LifecycleManager.getInstance().setShutdownHook(),那么有什么好方法可以确保恢复作业(考虑到 Cron 作业可能距离下一次执行还有 29 分钟,我希望该作业能够完成它的东西每 2 分钟一次)