celery_always_eager=True 是如何工作的?

Abh*_*jan 6 django celery

在 celery doc 中,它说明了all tasks will be executed **locally** by blocking until....本地在这里的含义。它是使用运行应用程序的主服务器的工作人员运行任务,还是将任务直接发送到远程运行的芹菜工作人员 https://docs.celeryproject.org/en/4.0/userguide/configuration.html#std:setting -task_always_eager

Dej*_*kic 11

这意味着Celery不会像平常那样通过向代理发送消息来安排任务运行。相反,它将在调用任务的进程内运行它(通过.apply_async().delay())。我认为此设置仅适用于测试,因此您的测试不必运行Celery workers,例如。

  • 当使用“send_task”调用任务时,配置“task_always_eager”似乎不起作用。这是在 `send_task` 源代码中: ```warnings.warn(AlwaysEagerIgnored('task_always_eager has noeffect on send_task', ...) ``` Celery 5.2.3 (2认同)