Как проверить, получает ли RabbitMQ задачу от сельдерея

Я использую django-celery для задач, которые выполняются дольше, чем обычно. Все время, пока задача выполняется, клиент проверяет результат текущей задачи. Проблема в том, что если celeryd не запускается или завершается из-за какой-то ошибки, проверка задачи все равно дает результат PENDING. Если есть проблема с работником, я хотел бы передать эту информацию клиенту, и он должен остановиться, чтобы проверить статус задачи, и задача должна быть прекращена. Код, который я использую для проверки статуса задачи:

res = AsyncResult(task_id)
result = res.status

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


Ответы (2)


Вы должны изучить сельдерей Мониторинг, особенно изучить Flower: веб-монитор Celery в реальном времени.

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