У меня есть сельдерей, работающий в контейнерах для докерных контейнеров из кролика. Я пытаюсь остановить и удалить контейнер из сельдерея, позволяя выполнять текущие текущие задачи. Документы предполагают, что отправка сигналов TERM или INT в основной процесс должна производиться в тесном отключении сельдерея, хотя я считаю, что детские процессы просто убивают.Изящно останавливая сельдерей в контейнере для докеров
При отправке TERM запущенных процессах он бросает:
WorkerLostError('Worker exited prematurely: signal 15 (SIGTERM).',)
Когда я посылаю INT процесс работает только выход без ошибок, хотя это тоже не позволяет задачу закончить, как документы предлагать.
Я начинаю контейнер Docker с помощью команды: su -m celery_user -c "python manage.py celery worker -Q queue-name"
Любые мысли о том, почему это может происходить? Может быть, сигнал заканчивается контейнером, а также процессом сельдерея?
Я посылаю сигнал с: docker kill --signal="TERM" containerid
или docker exec containerid kill -15 1
Ahh - да, я имел это в моей голове, что руководитель может вызвать то же самое. Спасибо, супервайзер работает. – Andrew