Я хочу, чтобы у меня было какое-то место, где я мог бы наблюдать за всеми отложенными задачами.
Я говорю не о зарегистрированных функциях / классах как задачах, а о реальных запланированных заданиях, для которых я мог бы отображать: name, task_id, eta, worker и т. д.
Используя Celery 2.0.2 и djcelery, я нашел `inspect 'в документации.Я попробовал:
from celery.task.control import inspect
def get_scheduled_tasks(nodes=None):
if nodes:
i = inspect(nodes)
else:
i = inspect()
scheduled_tasks = []
dump = i.scheduled()
if dump:
for worker, tasks in dump:
for task in tasks:
scheduled_task = {}
scheduled_task.update(task["request"])
del task["request"]
scheduled_task.update(task)
scheduled_task["worker"] = worker
scheduled_tasks.append(scheduled_task)
return scheduled_tasks
Но он навсегда зависает на dump = i.scheduled()
.
Странно, потому что в остальном все работает.
Использование Ubuntu 10.04, django 1.0 и virtualenv.