Как мне избавиться от зомби сельдерея? - PullRequest
0 голосов
/ 17 мая 2019

Я использую Celery с бэкэндом RabbitMQ.

Каким-то образом я оказался с тем, что кажется зомби-сельдереем.Я вижу работника в Flower и таких командах, как celery inspect scheduled.Но он ссылается на PID, который не существует.Там нет рабочего процесса.Это большая проблема, потому что Celery будет делегировать задачи этому работнику, и они никогда не будут выполнены.

Я полагаю, что произошло то, что док-контейнер, внутри которого он выполняется, отключился из-за нечистоты.Но теперь, даже если я перезапущу докер-контейнер, этот зомби-работник всегда возвращается.Всегда имеет одно и то же имя: celery@0357c65d991b.

В документах Celery сказано, что для того, чтобы убить рабочего, вы должны отправить его процесс TERM.Но я не могу этого сделать, потому что нет процесса.Это зомби.

RabbitMQ должен иметь висячую ссылку на этого работника.Единственное, что я смог найти в интерфейсе управления RabbitMQ - это очередь с именем celery@0357c65d991b.celery.pidbox.Я удалил эту очередь, но она появилась снова несколько секунд спустя.

Может кто-нибудь дать мне указатель на то, где искать, чтобы избавиться от этой вещи?

...