首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-celery:未配置结果后端

django-celery:未配置结果后端
EN

Stack Overflow用户
提问于 2011-12-08 14:54:11
回答 6查看 17.9K关注 0票数 16

我正在尝试在我的项目中使用django-celery

在settings.py中,我有

代码语言:javascript
复制
CELERY_RESULT_BACKEND = "amqp"

服务器启动得很好,

代码语言:javascript
复制
python manage.py celeryd --setting=settings

但是,如果我想访问延迟任务的结果,我会得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\celery\result.py", line 108, in ready
    return self.status in self.backend.READY_STATES
  File "C:\Python27\lib\site-packages\celery\result.py", line 196, in status
    return self.state
  File "C:\Python27\lib\site-packages\celery\result.py", line 191, in state
    return self.backend.get_status(self.task_id)
  File "C:\Python27\lib\site-packages\celery\backends\base.py", line 404, in _is
_disabled
    raise NotImplementedError("No result backend configured.  "
NotImplementedError: No result backend configured.  Please see the documentation
 for more information.

这非常奇怪,因为当我只运行celeryd (使用相同的芹菜设置)时,它工作得很好。以前有没有人遇到过这个问题?

提前感谢!

EN

回答 6

Stack Overflow用户

发布于 2013-01-08 14:15:44

尽管执行了celery任务(控制台日志),但我在从celery任务中获取结果时也遇到了同样的问题。我发现,我在django settings.py中有相同的设置CELERY_RESULT_BACKEND = "redis",但我也在tasks.py中实例化了celery

celery = Celery('tasks', broker='redis://localhost') -我认为它覆盖了settings.py属性,因此它没有为我的celery实例配置后端服务器,该实例用于存储结果。

我删除了它,让django从settings.py获取芹菜的属性,示例代码对我有效。

票数 6
EN

Stack Overflow用户

发布于 2012-06-02 01:35:41

如果您只是从http://www.celeryproject.org/tutorials/first-steps-with-celery/运行示例,则需要通过manage.py运行控制台:

% python manage.py外壳

票数 3
EN

Stack Overflow用户

发布于 2015-11-26 07:51:55

对于那些像我一样拼命寻找解决方案的人。

将此行放在settings.py脚本的末尾:

代码语言:javascript
复制
djcelery.setup_loader()

看起来,如果没有严格的顺序,django-celery将不会考虑自己的设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8427284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档