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

Will Heroku dyno daily restart affect multi-day sidekiq job?

提问人:existentialmutt 提问时间:10/25/2023 更新时间:10/25/2023 访问量:26

问:

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

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

具体来说,此页面提到测功机支持优雅重启,以允许它们完成对传入请求的处理。这是否也适用于仍在运行工作的 sidekiq 工人?

Ruby-on-Rails 红宝石 Heroku Sidekiq

评论


答:

3赞 Tallboy 10/25/2023 #1

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

工作人员将收到您可以监听的信号,具体取决于您正在使用的作业队列。从发出信号到发出信号,您将有 30 秒的时间,并且您将无法正常关闭。SIGINTSIGKILL

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