簡體   English   中英

如何使用Celery制作包含所有待處理任務的儀表板?

[英]How can I make a dashboard with all pending tasks using Celery?

我想有一些地方可以看到所有的掛件任務。

我不是說注冊的函數/類作為任務,而是我可以顯示的實際預定作業: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。

看看celerymon ,它運行一個顯示所有計划任務的Web服務器。 您必須使用-E標志運行celery以打開事件,這些事件將被放入隊列並被celerymon守護程序拉出。

嘗試Flower - 芹菜監測工具。
這提供了非常有用的儀表板來監視排隊的任務。

花 - 芹菜監測工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM