【发布时间】:2012-03-14 11:52:34
【问题描述】:
我有两种类型的任务,一种是用户生成的,另一种是大批量创建的。任务将分开队列(“短”和“长”) 当一个队列中有任务(即大批量)时,Celery 只获取那些任务,完全忽略另一个队列,直到整个批次完成。
Example:
send 100 slow tasks to "long" queue
send 100 small tasks to "short" queue
send 100 slow tasks to "long" queue
send 100 small tasks to "short" queue
Celery behaviour:
process 100 tasks form "long" queue
process 100 tasks form "short" queue
process 100 tasks form "long" queue
process 100 tasks form "short" queue
即使我为慢速任务设置 rate_limit 也会发生这种情况,这会进入“长”队列。我得到的只是缓慢的任务阻塞系统的时间更长:/ 有没有办法确保 Celery 从所有队列中获取任务? (我正在使用带有 RabbitMQ 的 Celery 2.5.1)
【问题讨论】:
-
这可能是使用默认交换引起的(两者相同)?