Полагаю, мне нужна проверка работоспособности, потому что, если я хочу предотвратить преждевременное завершение заданий sidekiq, Heroku Redis должен справиться с этим для меня?
Когда я хочу внести новые изменения в производственный сайт,Я перевел приложение в режим обслуживания: heroku maintenance:on
.Теперь, когда я делаю это и запускаю heroku ps
, я вижу, что и мой web
процесс, и мой worker
(то есть sidekiq) работают по-прежнему (имеет смысл, потому что это просто для предотвращения доступа пользователей к сайту).
Если я выключу worker
dyno с помощью команды, подобной этой: heroku ps:stop worker
после того, как сайт находится в режиме обслуживания, безопасно ли это остановит работников sidekiq до того, как он отключится?Кроме того, из документации Sidekiq:
https://github.com/mperham/sidekiq/wiki/Deployment#heroku
В нем упоминается переключатель -t N
, где N - это число в секундах, но у Heroku есть жесткий предел, позволяющий завершать процесс в течение 30 секунд.сам по себе.Правильно ли я понимаю, что если я остановлю процесс worker
с помощью команды heroku, он даст всем текущим работам N
секунд для завершения, прежде чем подать ему сигнал SIGTERM
?
Если нет, какие дополнительныекакие шаги мне нужно предпринять, чтобы убедиться, что Sidekiq безопасно отключился?