셀러리 작업자를 중지하는 방법은 무엇입니까?

셀러리 작업자를 중지하는 방법은 무엇입니까?

나는 redis를 통해 셀러리를 실행하고 있습니다. 나는 다음과 같이 작업자를 시작합니다.

celery multi start worker1 -A mypackage.tasks.tasks
celery multi v3.1.18 (Cipater)
> Starting nodes...
        > [email protected]: OK

그리고 나는 다음과 같이 그것을 죽인다:

celery multi kill worker1
celery multi v3.1.18 (Cipater)
> [email protected]: DOWN

그러나 작업자는 실제로 여전히 실행 중입니다. 작업자를 다시 시작할 수 없습니다.

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

프로세스를 종료하면 모든 것이 정상입니다.

kill 29369

하지만 그건 너무 번거롭습니다. PID를 알아야 합니다. 어떻게정말셀러리 명령줄 도구로 작업자를 죽이시겠습니까?

답변1

명령 으로 작업자를 막을 수 있는 방법은 없습니다 celery multi. pid 파일이나 ps 출력에서 ​​PID를 얻을 수 있습니다. 예:

ps auxww | grep '[c]elery worker' | awk '{print $2}' | xargs kill 

또는

kill $(cat /path/to/worker.pid)

관련 정보