2012-10-17 4 views
0

Ubuntu 서버에서 샐러리를 실행하는 Upstart 작업을 작성했습니다. 여기 celeryd.confCelery를 실행하는 시작 작업이 모든 작업자 프로세스를 중지하지 않습니다.

# celeryd - runs the celery daemon 
# 
# This task is run on startup to run the celery daemon 

description "run celery daemon" 

start on startup 
expect fork 
respawn 

exec su - trakklr -c "/app/trakklr/src/trakklr celeryd --events --beat --loglevel=debug --settings=production" 

라는 내 구성 파일은 내가 sudo service celeryd start 실행하면 celeryd 프로세스가 잘 시작하고 작업자 프로세스의 모든 X 번호가 좋은 시작입니다.

.. 그러나 내가 실행하면 sudo service celeryd stop, 그것은 대부분의 프로세스를 멈추지 만 몇 개의 프로세스는 걸려 있습니다.

왜 이런 일이 발생합니까? 나는 Celery 2.5.3을 사용하고있다.


여기 Github 추적기의 문제가 있습니다.

https://github.com/celery/django-celery/issues/142

답변

0

나는 이것을 파악할 수 없었지만 이전의 셀러리 버전에서는 문제가되는 것처럼 보였다. 나는 그들의 이슈 트래커에 언급이 문제를 발견하고 나는 그것이 같은 문제를 가리키는 것 같아요 :

https://github.com/celery/django-celery/issues/142

내가 내 셀러리를 업그레이드 장고 - 셀러리를 3.x.x 버전으로이 문제가 사라졌다.

0

나는 여전히이 적용되지 않을 수도 있습니다 셀러리를 실행할 수있는 init.d를 사용합니다. 이를 염두에두고 셀러리 서비스를 중지하면 TERM 신호가 셀러리에 전송됩니다. 이것은 작업자에게 새로운 작업을 수락하지 말고 기존 작업을 종료하지는 않습니다. 따라서 작업을 실행하는 데 걸리는 시간에 따라 셀러리에게 중단 할 것을 알린 후 얼마 동안 작업을 볼 수 있습니다. 결국 다른 문제가 발생하지 않는 한 결국 모두 종료됩니다.

+0

RabbitMQ에서 내 작업 대기열을 검사 했으므로 아무런 문제가없는 것으로 보입니다. 나는 다른 개발 작업으로 인해 작업을 대기 행렬에 넣지 않았습니다. Celery 3.x.x로 업그레이드했는데 문제가 해결되기를 바랍니다. 내 편집 좀 봐 : 나는 이것이 버그라고 생각한다. –

관련 문제