我希望有一些地方可以看到所有的挂件任务。
我不是说已注册的函数/类作为任务,而是我可以显示的实际预定作业: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。
答案 0 :(得分:4)
查看运行显示所有计划任务的Web服务器的celerymon。您必须使用-E标志运行芹菜来打开事件,这些事件会被放入队列并被celerymon守护程序拉出。
答案 1 :(得分:0)
尝试Flower - Celery监控工具。
这提供了非常有用的仪表板来监视排队的任务。