2013-09-07 1 views
8

나는 rabbitmq 브로커로 셀러리를 실행합니다. 오늘 나는 샐러리 노드의 실패 - 그것은 작업을 실행하지 않고 service celeryd stop 명령에 응답하지 않습니다. 노드를 몇 번 반복했지만 노드를 중지했지만 시작하면 다음 메시지가 표시됩니다.셀러리 노드가 이미 다시 시작될 때 사용하는 pidbox에서 실패합니다.

[WARNING/MainProcess] [email protected] ready. 
[WARNING/MainProcess] /home/ubuntu/virtualenv/project_1/local/lib/python2.7/site-packages/kombu/pidbox.py:73: UserWarning: A node named u'nodename' is already using this process mailbox! 

Maybe you forgot to shutdown the other node or did not do so properly? 
Or if you meant to start multiple nodes on the same host please make sure 
you give each node a unique node name! 

    warnings.warn(W_PIDBOX_IN_USE % {'hostname': self.hostname}) 

누구든지 프로세스 사서함의 잠금을 해제하는 방법을 제안 할 수 있습니까?

답변

-3

로그 파일이 크거나 여유 공간이 충분하지 않은 것이 원인이라고 생각합니다. 삭제 후 모두 괜찮습니다.

+0

를 사용하여. RabbitMQ는 RAM과 같은 여유 디스크 공간이 필요합니다. 우리는 디스크 공간이 매우 적었습니다. 많은 공간을 정리했을 때이 메시지는 더 이상 발생하지 않았습니다. –

+0

동일한 문제가 발생하여 모든 로그를 삭제하고 디스크의 공간을 확인했습니다. 다 잘된 것 같지만 같은 오류가 계속 발생합니다 ... –

+3

이 답변은 잘못되었습니다. 올바른 설명은 @ f01 대답을 참조하십시오. 나는 또한 같은 문제를 겪고 있었고 그 대답의 링크에 주어진 설명을 사용하여 해결되었다. –

23

여기에서 http://celery.readthedocs.org/en/latest/userguide/workers.html#starting-the-worker 각 노드의 이름을 고유하게 지정해야 할 수 있습니다. 예 : 감독자 탈출에

$ celery -A proj worker --loglevel=INFO --concurrency=10 -n worker1.%h 

나는 자말의 답변을 확인할 수 있습니다 %%의 시간

+1

'--concurrency'를 사용하지 않고 대신'supervisor'와 같은 다른 서비스에 의존하여 처리한다. 동시성, 이것은 여전히 ​​충돌하는 노드 이름을 초래할 것입니다. – Cerin