Как да проверите дали RabbitMQ получава задача от celery

Използвам django-celery за задачи, които работят по-дълго от обикновено. През цялото време, докато задачата се изпълнява, клиентът проверява резултата от текущата задача. Проблемът е, че ако celeryd не се изпълнява или е прекратен поради някаква грешка, проверката за задачата все още дава резултат ПЕНДИНГ. Ако има проблем с работника, бих искал да дам тази информация на клиента и той трябва да спре, за да провери статуса на задачата и задачата трябва да бъде прекратена. Кодът, който използвам за проверка на състоянието на задачата, е:

res = AsyncResult(task_id)
result = res.status

person UnLiMiTeD    schedule 24.08.2013    source източник


Отговори (2)


Трябва да разгледате Мониторинг на целина, по-специално Цвете: Целина уеб монитор в реално време.

person Aamir Adnan    schedule 24.08.2013

Мисля, че търсите една от тези функции:

djcelery.celery.control.inspect().ping() djcelery.celery.control.inspect().active_queues()

прегледайте моя примерен проект за django-celery: https://github.com/brentpayne/django-celery-example/blob/master/polls/management/commands/worker_count.py

и този документ за целина: http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers

person brent.payne    schedule 28.08.2013