How can I make a dashboard with all pending tasks using Celery?
Posted
by
e-satis
on Stack Overflow
See other posts from Stack Overflow
or by e-satis
Published on 2010-07-28T21:01:33Z
Indexed on
2010/12/27
20:54 UTC
Read the original article
Hit count: 214
I want to have some place where I can watch all the pendings tasks.
I'm not talking about the registered functions/classes as tasks, but the actual scheduled jobs for which I could display: name, task_id, eta, worker, etc.
Using Celery 2.0.2 and djcelery, I found `inspect' in the documentation. I tried:
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
But it hangs forever on dump = i.scheduled()
.
Strange, because otherwise everything works.
Using Ubuntu 10.04, django 1.0 and virtualenv.
© Stack Overflow or respective owner