Heroku dyno 每日重启会影响多天的 sidekiq 工作吗?

问题描述 投票:0回答:1

我有一个应用程序,其进程需要长时间运行才能传输大量数据。其中一些运行可能需要几天时间。

我希望能够在具有专用队列的 sidekiq 作业中运行这些进程,但 Heroku 的文档并不清楚每日 dyno 重新启动是否会中断作业。

特别是此页面提到dynos支持优雅重启以允许它们完成处理传入请求。这是否也适用于仍在运行工作的 sidekiq 工作人员?

ruby-on-rails ruby heroku sidekiq
1个回答
0
投票

是的,他们会的。你应该做的是分块你的工作并使其在可以恢复的地方幂等。

工作人员将收到

SIGINT
信号,您可以收听该信号,具体取决于您正在使用的作业队列。从信号发出到信号变为
SIGKILL
,您将有 30 秒的时间,并且您将无法正常关机。

没有办法避免 24 小时重新启动,但我听说有些人所做的(如果你无法在 30 秒内关闭)是每 6 小时左右,以编程方式重新启动你自己的服务器,这样它只会重新启动在预期的时间。

© www.soinside.com 2019 - 2024. All rights reserved.