Celery 监控与数据库代理不兼容

5 投票
1 回答
2133 浏览
提问于 2025-04-16 21:34

我正在使用django-celery,把数据库当作消息中介和结果存储。事件正在被处理,但监控工具(celerycam或celeryev)却没有工作。

我的settings.py文件里包含了

import djcelery
djcelery.setup_loader()
BROKER_BACKEND = "django"
CELERY_IMPORTS = (
        "cbridge.tasks",
        )

INSTALLED_APPS += [
    'djcelery',
    'djkombu',
    ]

这已经足够让manage.py celerydcbridge.tasks中处理任务,这些任务可以从任何地方插入到队列中,有时会把结果返回给启动任务的线程。(关于“有时”我暂时不讨论。)所以系统已经设置好了,可以实际运行任务,这很好,但……

我的问题是,如何才能监控这些任务呢?在djcelery_的表里什么都没有显示。

我运行manage.py celerycammanage.py celeryev,它们启动得很好,但从来没有任何动作。我猜可能还有更多的配置变量需要设置。但它们是什么呢?我尝试设置了

CELERY_RESULT_BACKEND = "database" 
CELERY_RESULT_DBURI = "mysql://root:@localhost/cbridge"

但没有任何变化。我本来期待celeryevcelerycam能读取和celeryd相同的配置设置。那为什么它们不能呢?

1 个回答

3

我觉得你的答案可能在这里……

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

“事件快照目前不支持Django的ORM传输。”

撰写回答