Подтвердить что ты не робот

Сельдерей: список всех задач, запланированных, активных * и * завершенных

Обновление для награды

Я бы хотел, чтобы решение, которое не включало поток мониторинга, по возможности.


Я знаю, что могу просматривать запланированные и активные задачи, используя класс Inspect для моих приложений Control.

i = myapp.control.inspect()

currently_running = i.active()
scheduled = i.scheduled()

Но я не мог найти какую-либо функцию для отображения уже законченных задач. Я знаю, что эта информация будет, по крайней мере, временно доступной, потому что я могу найти завершенную задачу с помощью task_id:

>>> r = my task.AsyncResult(task_id=' ... ')
>>> r.state
u'SUCCESS'

Как я могу получить полный список запланированных, активных и готовых задач? Или, возможно, список всех задач сразу?

4b9b3361

Ответ 2

Один из вариантов, не требующий потока мониторинга, - это обработчик Celery on_success (с использованием функции bootsteps в версии 3.1+) - это должно было бы напишите соответствующую информацию в свое хранилище данных.

Вероятно, лучший вариант, нуждающийся в меньшем количестве кода, заключается в том, чтобы использовать signal_success signal таким же образом, записывая необходимую информацию позже.

Опция "Цветок", вероятно, проще, поскольку вы запрашиваете информацию, уже поддерживаемую Flower, когда задачи завершены - см. этот ответ.