Estou executando o aipo via redis. Eu começo meu trabalhador assim:
celery multi start worker1 -A mypackage.tasks.tasks
celery multi v3.1.18 (Cipater)
> Starting nodes...
> [email protected]: OK
E eu mato assim:
celery multi kill worker1
celery multi v3.1.18 (Cipater)
> [email protected]: DOWN
Mas o trabalhador ainda está em execução. Não consigo iniciar o trabalhador novamente:
celery multi start worker1 -A mypackage.tasks.tasks
celery multi v3.1.18 (Cipater)
> Starting nodes...
ERROR: Pidfile (worker1.pid) already exists.
Seems we're already running? (pid: 29369)
> [email protected]: OK
Se eu encerrar o processo, está tudo bem:
kill 29369
Mas isso é muito complicado: preciso saber o PID. Comorealmentematar o trabalhador com a ferramenta de linha de comando do aipo?
Responder1
Não há como parar o trabalhador com celery multi
comando. Você pode obter o PID do arquivo pid ou da saída ps, por exemplo
ps auxww | grep '[c]elery worker' | awk '{print $2}' | xargs kill
ou
kill $(cat /path/to/worker.pid)