1

RQ.work(burst=True)为其工作人员提供了一种非常适合集成测试的方法,当您有将任务排入队列的代码然后希望该任务同步运行时。

我在Celery上找不到任何类似的功能。请帮忙!

4

1 回答 1

0

没有burst modein celery,但有一个CELERY_ALWAYS_EAGER测试选项:

CELERY_ALWAYS_EAGER

如果为 True,则所有任务将通过阻塞在本地执行,直到任务返回。apply_async() 和 Task.delay() 将返回一个 EagerResult 实例,该实例模拟 AsyncResult 的 API 和行为,但结果已被评估。

也就是说,任务将在本地执行,而不是发送到队列中。

http://docs.celeryproject.org/en/3.1/configuration.html#celery-always-eager

于 2018-05-15T04:00:04.633 回答