如果有空闲进程,如何强制芹菜消耗下一个任务?

时间:2014-07-30 20:13:27

标签: rabbitmq celery celeryd

我有芹菜设置从RabbitMQ获取任务,但事情正在排除,但我注意到以下行为(T:任务,P:进程):

--> Fetch first batch of messages (6 tasks) from broker
<-- messages are received. Start them
--> Send T1..T6 to be executed by P1..P6
--> Prefetch 6 new messages from broker, but do not ACK them
<-- P1..P5 finish tasks T1..T5, but T6 is still being processed (it will take ~2h)

此时,没有其他任务开始运行,尽管我将并发设置为6并且只有一个进程处于活动状态。我在芹菜花上尝试了add_consumer命令,但似乎没有任何事情发生。我可以在RabbitMQ上看到有消息没有ACK,而READY状态的消息刚刚开始堆叠,因为它们不会被消耗掉~2h。

有没有办法设置芹菜,这样只要进程空闲,它就会消耗下一个任务,而不是等待原始批次完全完成?

0 个答案:

没有答案