了解基本芹菜消息排队的工作原理

时间:2011-11-04 19:08:37

标签: django message-queue django-celery

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

我的理解是,当我调用启动异步任务时,任务信息被置于redis中,然后连接到代理的celeryd实例会消耗并执行任务。这基本上是发生了什么?

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

1 个答案:

答案 0 :(得分:2)

workers将消耗与代理包含的消息一样多的消息。如果您有8个工作人员,但只有1个消息,则8个工作人员中的1个将使用该消息,执行该任务。