我试图在stackoverflow和谷歌上搜索相关问题,但没有找到可以解决我问题的东西。
我将/ etc / default / celeryd配置中的BROKER_URL设置为redis。 BROKER_URL = “redis的://本地主机:6379”
但是当我启动/etc/init.d/celeryd启动时
它说:“ERROR / MainProcess]消费者:无法连接到amqp://guest@127.0.0.1:5672 //:”
同样在文档页面上,我看到了celeryconfig.py。我不明白我为什么要有两个配置文件? / etc / default / celeryd用于配置。
答案 0 :(得分:1)
确保在定义应用时未设置broker
。当我从教程中复制并粘贴代码时,这就是我的一点。花了我几个小时才意识到我用这一行覆盖了我自己的配置:
app = Celery('tasks', broker='amqp://guest@localhost//')
应该这样说:
app = Celery('tasks')
答案 1 :(得分:0)
如果将名称空间设置为CELERY_BROKER_URL
,则可以尝试使用BROKER_URL
而不是app.config_from_object("django.conf:settings", namespace="CELERY")
。
参考:http://docs.celeryproject.org/en/latest/history/whatsnew-4.0.html#latentcall-django-admonition