0

我已经实现了一个使用 celery 进行消息队列的小测试,我只是想确保我了解它在基本级别上的工作原理(Django-Celery,使用 Redis 作为代理)。

我的理解是,当我调用启动异步任务时,任务信息放在redis中,然后连接到broker的celeryd实例消费并执行任务。这基本上是正在发生的事情吗?

如果我设置了一个应该每小时执行一次的定期任务,该任务是否会在所有任务使用者上执行?如果是这样,有没有办法限制它,以便只有一个消费者会执行定期任务?

4

1 回答 1

2

The workers will consume as many messages as the broker contains. If you have 8 workers, but only 1 message, 1 of the 8 workers will consume the message, executing the task.

于 2011-11-04T19:13:38.527 回答