当我 运行 一个工人时,Celery CELERY_DEFAULT_EXCHANGE_TYPE 不工作

Celery CELERY_DEFAULT_EXCHANGE_TYPE doesn't work when I run a worker

我想 运行 一些工人处于 topic 模式,所以我更改了 CELERY_DEFAULT_EXCHANGE_TYPE 设置。

CELERY_DEFAULT_EXCHANGE = 'interesting_exchange'
CELERY_DEFAULT_EXCHANGE_TYPE = 'topic'

当我想 public 消息到干净的 rabbitmq(假设生产者在消费者之前启动)时,如 simple_task.apply_async(args=[1, 2, 3]),它声明很好:interesting_exchange 声明为主题模式。

但是当我想 运行 一个干净的 rabbitmq 的工人(假设消费者在生产者之前开始),比如 celery worker -A celery_app.appinteresting_exchange 声明为直接模式。

我需要指定其他选项吗?或者这只是一个错误?

这是一个 known Celery issue and the fix 已经被合并。升级到 Celery 4.4 应该可以解决问题。