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: 276
        
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