如何安全关闭Heroku上的Sidekiq

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

我想我需要在这里进行健全性检查,因为如果我想防止任何sidekiq作业过早结束,Heroku Redis应该为我处理这件事?

[当我要将新更改推送到生产站点时,我将应用程序置于维护模式:heroku maintenance:on。现在,当我执行此操作并运行heroku ps时,我可以看到web进程和worker(即sidekiq)都处于静止状态(这很有意义,因为它只是为了防止用户访问该站点)。

如果我使用如下命令关闭worker测功机:heroku ps:stop worker在站点处于维护模式后,这会安全地在停止运行之前停止sidekiq工作人员吗?另外,从Sidekiq的文档中:

https://github.com/mperham/sidekiq/wiki/Deployment#heroku

[它提到-t N开关,其中N是秒数,但是Heroku的硬限制是允许进程30秒自行关闭。我是否正确,如果我使用heroku命令停止worker进程,它会在给出N信号之前让当前正在运行的作业SIGTERM秒完成?

如果没有,我需要采取哪些其他步骤来确保Sidekiq安全关闭?

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

听起来不错。当您调用ps:stop时,Heroku发送SIGTERM。发送SIGTERM通知Sidekiq在N秒内关闭。您的工人dyno应该在30秒内安全关闭。

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