gpt4 book ai didi

node.js - Heroku - 当应用程序为 "asleep"时,CRON 作业是否继续工作?

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:02 26 4
gpt4 key购买 nike

我已将我的应用程序编程为每天上午 9 点触发一些 CRON 作业,并且它可以在 localhost 上运行。

我的应用程序在沙盒模式下运行,只有一个测功机,所以我知道它会在 1 小时不活动后进入休眠状态。

当应用程序进入休眠状态时,内部到底发生了什么?这是我的 Cron Jobs 不起作用的原因吗?验证起来比较麻烦...

我正在使用node.js + heroku + node-cron

最佳答案

当应用程序进入休眠状态时 Heroku sends the SIGTERM signal到最有可能杀死您的情况下的进程的进程,从而阻止 cron 作业运行。可以捕获并忽略 SIGTERM 信号,但在这种情况下,Heroku 可能会使用 SIGKILL 信号强制关闭您的进程,就像 when restarting dynos 那样。 .

一种可能的解决方法是使用 New Relic addonregularly ping/monitor a URL在您的应用程序中,防止其休眠。然而,将此方法与 node-cron 一起使用可能会出现问题,因为 Heroku 每天至少重新启动所有测功机一次。如果在 cron 作业将触发时重新启动,则当天可能不会触发 cron 作业。

另一种可能性是使用Heroku Scheduler addon而不是使用node-cron。运行定期任务。

关于node.js - Heroku - 当应用程序为 "asleep"时,CRON 作业是否继续工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28300681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com