正在从多个队列中获取任务



我有两种类型的任务,一种是由用户生成的,另一种是批量创建的。任务将进入不同的队列("短"one_answers"长")当一个队列中有任务(即大批量)时,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从所有队列中提取任务?(我将Celery 2.5.1与RabbitMQ一起使用)

您可以为每个队列启动单独的芹菜工作者:

$celeryd-Q短

$celeryd-Q长

在这种情况下,每种类型的任务都将由单独的工作人员独立处理。

相关内容

  • 没有找到相关文章

最新更新