셀러리 대몬과 관련하여 문제가 있습니다. 우리는 변경 사항을 푸시 할 때마다 패브릭 배치 스크립트를 사용하여 데몬을 재시작합니다. 그러나 어떤 이유로이 문제는 심각한 문제를 야기합니다.셀러리 데몬 관련 문제
배포 스크립트가 실행될 때마다 셀러리 프로세스는 일부 의사 정지 상태가됩니다. 그들은 (안타깝게도) rabbitmq로부터 작업을 여전히 소비하지만 실제로 아무것도하지는 않을 것입니다. 혼란스럽게도 간단한 검사를 통해이 상태에서 모든 것이 "괜찮아"보인다는 것을 알 수 있으며 celeryctl 상태는 한 노드를 온라인 상태로 표시하고 ps aux | grep celery는 2 개의 실행중인 프로세스를 보여줍니다.
그러나 시도하는 것은 수동으로 중지 다음과 같은 오류가 발생 /etc/init.d/celeryd 실행 :
start-stop-daemon: warning: failed to kill 30360: No such process
celeryd 시작을 실행하려고이 상태가 제대로 작동하려면 나타나지만에서 실제로 수행하는 동안 아무것도. 이 문제를 해결할 수있는 유일한 방법은 실행중인 셀러리 프로세스를 수동으로 종료 한 다음 다시 시작하는 것입니다.
여기에 어떤 아이디어가 있습니까? 우리는 또한 완전한 확인을하지는 못했지만 문제가 며칠 (현재 활동이없는 상태에서 현재 테스트 서버 임)이 지나면 전개되지 않고 자체적으로 문제가 발생한다고 생각합니다.
우리는 배포 스크립트도 사용하지만 패브릭을 사용하지는 않습니다. 파이썬에서 celeryd restart 명령을 실행하면 모든 것이 올바르게 작동합니다. 우분투 버전의 celeryd.sh 스크립트의 일부 문제를 알고 있는데, 실행중인 프로세스를 얻는 데 필요한 bash 명령 때문에 10.10 이하입니다. 어떤 OS에서 실행하고 있습니까? 셀러리 버전은 무엇입니까? –
스크립트가 데몬을 정확히 다시 시작하는 방법은 무엇입니까? 그것은 단지'kill -9' 또는 유사하게 발사되는 것입니까? –
init.d 스크립트의 stop 명령을 트리거합니다. 이것은 셀러리의 github contrib 파일에서 사용할 수있는 포함 된 init.d 스크립트입니다. 그다지 멈추지 말고 다시 시작하는 대신에 어둡게 찍었습니다. init.d 스크립트는 start-stop-daemon 명령을 호출합니다 – John