Django Celery:管理界面显示零个任务/工作者

28

我已经将Celery与Django ORM作为后端设置好了,想要监控幕后发生的情况。

  • 我使用-E标志启动了celerydpython manage.py celeryd -E -l INFO -v 1 -f /path/to/celeryd.log

  • 使用默认的1秒钟快照频率启动了celerycampython mannage.py celerycam

我可以看到任务被执行(在celery日志中)并且结果被存储(这些任务周期性地改变数据模型)。然而,在Django管理面板的任务/工作者页面中,显示为零项。当我启动celeryev时也是同样的情况(没有事件/任务/工作者显示)。

是否需要更改其他配置设置才能实现监控?

我的软件堆栈:Django 1.1,Celery 2.2.4,Python 2.4

2个回答

31

事件快照目前无法与Django ORM传输一起使用。


1
谢谢回复。这个Django Admin Monitor文档中的内容是基于非数据库后端的吗? - rubayeet
是的,目前它可以与RabbitMQ和Redis一起使用(据我所知,还没有尝试其他的)。 - asksol
虽然可以添加对此的支持,但问题在于它目前非常低效:事件是一条消息,celeryev会对这些消息进行快照并将其存储在数据库中。但如果消息存储在数据库中,则意味着您要将相同的数据写两次。如果我们应该支持此功能,则celeryd应直接将其写入djcelery.models.TaskState模型。 - asksol
14
日志中应该会显示当前配置不受支持的信息吧? - Leopd

8

我不知道这是否有帮助,但你是否尝试运行 ./manage.py celerycam,它会每1秒将数据捕获到数据库中,因此你将能够在django管理员界面上看到在线工作人员和任务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接