2014-10-10 4 views
0

내가 읽은 바로는 셀러리 작업자가 중지되고 다시 시작할 때 대기열에서 소모 할 수 있어야합니다.강제 종료 후 셀러리 작업자가 다시 시작되지 않음

이를 테스트하기 위해 각 컴퓨터에 2 명의 셀러리 작업자가있는 가상 컴퓨터 3 대를 설치했습니다. 셀러리 데몬을 사용하고 있습니다. 하나의 머신에는 클라이언트 스크립트가 있고, 하나는 브로커 역할을하지만, 모두가 rabbitmq를 실행하고 있습니다.

클라이언트 스크립트를 시작하면 모든 직원이 작업을 가져오고 있습니다 (로그에서 알 수 있습니다). 실패시 어떤 일이 발생하는지 테스트하기 위해 내 컴퓨터 중 한 곳에

service celeryd stop 

을 발급합니다. 잠시 후, 나는 분 전에 멈춘 기계에

service celeryd start 

을 발급합니다. 그러나이 명령을 내리면 내 클라이언트 스크립트가 멈추고 중지되며 위의 시스템에있는 작업자는 다시 작업을받지 못합니다.

무슨 일이 일어나고 있는지 알고 싶습니다. 셀러리 작업자가 종료되기 전에 작업 한 마지막 작업이 어떻게 든 방해 받고 있다는 가능성을 짐작하고 있습니다.

FYI : 고객 스크립트에서 결과를 수신하면 임시 대기열을 삭제할 예정이지만 위의 문제에 영향을 미치지 않는다고 생각합니다.

답변

1

네, 맞습니다. 종료가 시작되면 작업자는 실제로 종료되기 전에 현재 실행중인 모든 작업을 완료합니다 [ [celery document] 참조).

그리고 실제로 근본적인 문제인지 확인하려면 해당 작업자의 로그를 확인하는 것이 좋습니다.

그런데 flower을 사용하여 셀러리를 모니터링 할 수 있습니다.

관련 문제