我已经实现了一个使用芹菜进行消息排队的小测试,我只想确保我理解它在基本级别上是如何工作的(Django-Celery,使用Redis作为代理)。
我的理解是,当我调用启动异步任务时,任务信息被置于redis中,然后连接到代理的celeryd实例会消耗并执行任务。这基本上是发生了什么?
如果我设置一个应该每小时执行一次的定期任务,那么该任务是否会在所有任务消费者上执行?如果有,是否有办法限制它,以便只有一个消费者会执行定期任务?
答案 0 :(得分:2)
workers
将消耗与代理包含的消息一样多的消息。如果您有8个工作人员,但只有1个消息,则8个工作人员中的1个将使用该消息,执行该任务。