Как безопасно отключить Sidekiq на Heroku - PullRequest
0 голосов
/ 29 сентября 2019

Полагаю, мне нужна проверка работоспособности, потому что, если я хочу предотвратить преждевременное завершение заданий 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 безопасно отключился?

1 Ответ

0 голосов
/ 29 сентября 2019

Звучит так, будто ты в порядке.Heroku отправляет SIGTERM, когда вы звоните ps:stop.При отправке SIGTERM Sidekiq отключается в течение N секунд.Ваш рабочий динамо должен быть безопасно отключен в течение 30 секунд.

...