2010-07-28 31 views
9

我想有一個地方可以觀看所有的懸掛任務。如何使用Celery製作所有未完成任務的儀表板?

我不是在談論註冊函數/類作爲任務,但實際的預定作業的,我可以顯示:名字,TASK_ID,ETA,工人等

使用芹菜2.0.2和djcelery ,我在文檔中發現了「檢查」。我試過了:

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。

回答

4

看看celerymon,它運行一個顯示所有計劃任務的Web服務器。你必須用-E標誌運行芹菜才能打開事件,這些事件會被放到你的隊列中並被celerymon守護進程取下。

相關問題