2015-06-23 7 views
2

Я использую Rails + Sidekiq + Docker. Я планирую развернуть мой процесс Sidekiq внутри контейнера Docker. Мои задания довольно длительные и имеют непредсказуемые длительности (в основном, он выполняет длительный запрос к базе данных - может быть до 10-15 минут)Запуск Sidekiq внутри Docker - Завершение обработки контейнера Docker?

Когда я убиваю контейнер для докеров (как часть нового развертывания), как я могу сказать Sidekiq, чтобы изящно остановиться, чтобы никакие существующие задания не прерывались?

С кем-либо сталкивалась с подобной ситуацией раньше. Если да, то как вы обходите это?

ответ

2

docker stop -t XX должен послать сигнал TERM, чтобы сообщить Sidekiq о завершении работы и подождать XX секунд.

Вы также захотите увеличить время ожидания Sidekiq с помощью sidekiq -t XX.

+0

спасибо. Думаю, это работает. Я просто понял, что мои задания намного более длительные и непредсказуемые, чем указано (отредактирован исходный вопрос). Смотрел, есть ли у кого-нибудь умные способы сделать это. Но кажется, что это правильный и правильный способ сделать это. – huy