【发布时间】:2022-01-30 03:57:57
【问题描述】:
我在 Python 中有一个 Telegram 机器人,但它大约每 24 小时由工作人员中的相同命令重新启动。我正在使用免费版本的测功机小时。如何禁用此重启?
【问题讨论】:
我在 Python 中有一个 Telegram 机器人,但它大约每 24 小时由工作人员中的相同命令重新启动。我正在使用免费版本的测功机小时。如何禁用此重启?
【问题讨论】:
你不能。您必须设计您的应用程序,使其在这些重新启动时正常工作。
见docs:
Dynos 还至少每天重新启动(循环)一次,以帮助维持在 Heroku 上运行的应用程序的健康。对本地文件系统的任何更改都将被删除。循环每 24 小时发生一次(加上最多 216 分钟的随机时间,以防止应用程序的每个测功机同时重新启动)。手动重启(heroku ps:restart)和发布(部署或更改配置变量)将重置这 24 小时的时间段。所有测功机都会进行骑行,包括一次性测功机,因此测功机最多可运行 24 小时 + 216 分钟。
理想情况下,您应该同时为同一个应用运行至少两个测功机以提高稳定性。 Heroku 将确保它们不会在完全相同的时间重新启动,因此将始终至少有一个在线并响应请求。
在收到SIGTERM 后,您有 30 秒的时间来完成对现有请求所做的工作,然后您的进程被终止,如 here 所述。
【讨论】: