当前位置: 首页 > 面试题库 >

芹菜未选择CELERY_ALWAYS_EAGER设置

阳勇
2023-03-14
问题内容

我正在运行Django 1.8 + Celery 4.0.2
Celery配置良好,可以在Redis后端本地运行Django任务。但是,当我尝试使用CELERY_ALWAYS_EAGER = True设置时,此设置无效。其他设置则不是这种情况,例如CELERY_TIMEZONE

具体来说,pdb我看到的app.conf.task_always_eagerFalse

lib / python2.7 / site-packages / celery / app /
task.py(520)apply_async()因此,CELERY_ALWAYS_EAGER不会以某种方式被接收并且对app.conf.task_always_eager没有影响

来自pdb的更多信息:

> app.conf.get('CELERY_ALWAYS_EAGER')
> True
> app.conf.task_always_eager
> False

是什么原因造成的?我知道Celery 4.x正在从旧的设置名称过渡到新的设置,但是他们仍然承诺仍然会使用旧的设置名称。


问题答案:

CELERY_ALWAYS_EAGERCELERY_TASK_ALWAYS_EAGER在4.0+版本中重命名为。

更准确地说,不赞成使用大写字母设置,而是直接配置celery应用程序对象,并且其中的几个都已命名为可以使用task_worker_用作前缀。因为仍然具有全大写设置的向后兼容性,所以这也间接重命名了全大写设置。

从变更日志:

celery_前缀也已删除,此名称空间中与任务相关的设置现在以task_前缀,worker相关的设置带有worker_。



 类似资料:
  • 现在,我想将< code>register事件发布到某个特殊的交换,我可以使用celery远程检索和处理它。 实际上,我已经使用了函数来实现这一点,但是它必须传递来指示应该执行哪个任务并消费它。所以它似乎不太适合我的目标。 我想要的就是这样: 向某些发布消息; 远程机器1订阅此或并捕获消息,用于执行任务; 远程机器2-与机器1相同但执行另一个任务-接收(可能需要回复某些) 例如,就像这个工作流一样

  • 问题内容: 我想设置一个先前选择的要在页面加载时显示的选项。我用以下代码尝试了它: 与 但这是行不通的。有任何想法吗? 问题答案: 这绝对应该工作。确保已将代码放入:

  • 选择菜单摒弃了原生的select 元素的样式,原生的select元素被隐藏,并被一个由jquery mobile框架自定义样式的按钮和菜单替代。菜单是ARIA的(即Accessible Rich Internet Applications)并且桌面电脑的键盘也是可访问的。 当被点击时,手机自带的原生的菜单选择器会打开。菜单内某个值被选中后,自定义的选择按钮的值更新为你选择的那一个。 要添加这样的选

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 我最近一直在用芹菜,我不喜欢它。它的配置是混乱的,过于复杂的,并且没有很好的文档记录。 我想从一个生产者向多个消费者发送带有芹菜的广播消息。使我困惑的是芹菜术语和底层传输rabbitMQ的术语之间的差异。 在RabbitMQ中,您可以使用单个扇出交换和多个队列来广播消息: 但在Celery中,术语都搞乱了:这里可以有一个广播队列,它向多个消费者发送消息: 我甚至不明白Celery广播队列应该如何工

  • 我最近开始研究分布式计算以提高计算速度。我选择了芹菜。然而,我对一些术语不太熟悉。所以,我有几个相关的问题。 来自芹菜文档: ... Celery通过消息进行通信,通常使用代理在客户机和工作人员之间进行调解。为了启动任务,客户机将消息添加到队列中,然后代理将该消息传递给工作者。 什么是客户端(这里)?什么是经纪商?为什么消息通过代理传递?为什么 Celery 会使用后端和队列进行进程间通信? 当我