Je veux avoir un endroit où je peux regarder toutes les tâches de pendules.Comment puis-je créer un tableau de bord avec toutes les tâches en attente utilisant Celery?
Je ne parle pas des fonctions enregistrées/classes comme tâches, mais les emplois réels prévue pour le que je pouvais afficher: nom, task_id, eta, travailleur, etc.
Utilisation Céleri 2.0.2 et djcelery , J'ai trouvé `inspecter 'dans la documentation. J'ai essayé:
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
Mais il se bloque toujours sur dump = i.scheduled()
.
Étrange, car sinon tout fonctionne. Utilisation de Ubuntu 10.04, django 1.0 et virtualenv.