我想我需要在这里进行健全性检查,因为如果我想防止任何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安全关闭?
听起来不错。当您调用ps:stop
时,Heroku发送SIGTERM。发送SIGTERM通知Sidekiq在N秒内关闭。您的工人dyno应该在30秒内安全关闭。