2012-06-24 3 views
0

나는 장고 셀러리 + rabbitmq를 사용하여 일부 asyn 작업을 실행하기 위해 대기열 'sendmail'을 정의하여 메일 보내기 작업을 실행하고 특정 작업 (이 작업에는 자체 대기열이 있음) 하지만 지금은 문제가 발생했습니다. 특정 작업이 끝난 후 메일이 가끔씩 전송되기도하고 때로는 5 ~ 20 분이 필요하기도합니다. 어떤 이유로 인해 문제가 발생했는지 알고 싶습니다.django 셀러리 rabbitmq 지연을 실행

Django-celery는 task.delay()를 호출 할 때 taskname과 param을 rabbitmq에 메시지로 패키지합니다.

언제 메시지가 rabbitmq로 전달되는지 알고 싶지만 웹 관리 도구를 사용하면 전체 메시지를 볼 수 있지만 모든 메시지의 세부 정보, 특히 메시지가 도달 한 시간을 볼 수 없습니다. Django-Celery 로그는 브로커 시간에서 얻은 작업을보고 작업 시간을 실행합니다. 모든 주요 시간을 알고 싶습니다.

답변

1

장고 - 셀러리 (Django-Celery)는 작업 단위로 작업 데이터를보고합니다. 데이터베이스를 동기화하면 관리자를 통해 액세스 할 수있는 많은 모니터링 테이블이 생성됩니다. 그러나 이러한 테이블에 이러한 작업을 기록하려면 django 컨텍스트 (pthon ./manage.py celerycam)에서 celerycam 프로그램을 실행해야합니다. celerycam 프로그램은 매 초마다 작업의 "스냅 샷"을 가져 와서 기본값에 대해 정보를 기록합니다. 모니터링을위한 또 다른 유용한 도구는 celerymon 프로그램 (django 컨텍스트에서 실행되어야 함)입니다. 이것은 작업이 발생할 때 실시간 정보를보고하는 명령 줄 ncurses 프로그램입니다. 마지막으로, rabbitmqctrl은 모니터링에 도움이 될 수있는 많은 옵션을 제공합니다. http://celery.github.com/celery/userguide/monitoring.html

이 내가 셀러리를 사용할 때 내 작업을 모니터링하는 데 사용할 것입니다, 어쨌든 :

이이 문서에 특히 유용 페이지입니다.