芹菜 - 有多少队列?

时间:2012-12-18 16:52:17

标签: celery

我使用Celery和RabbitMQ作为经纪人。

我的项目将包含一些长时间运行的连续任务组。上一组任务的输出是下一组任务的输入。

所有工作节点将首先使用第一类任务(组),然后所有工作人员将按顺序使用下一类任务,前一个结果作为输入等。

我的问题是,在Celery中,我应该定义多少个队列? 所有任务只有1个队列?或者我应该为每种类型的任务使用1个队列? 在这种情况下,使用1个队列或更多队列有什么好处?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我会把队列分开,所以有两个。从信息流的角度来看,两个独立的队列更有意义。它还明确表示信息流经这条路径,并且任何一个队列中的所有任务都是相似的。

因此,多个队列的好处是任务在逻辑意义上彼此分离。使信息流更容易遵循。如果您的任务队列变得相当大,那么设计多个队列时也会在系统中应用冗余,因为如果需要,您可以将队列分离到不同的机器。使用Celery Routing,您可以分离哪些机器监听哪个队列,并将您的任务分离到各种其他机器。

单个队列的好处在于它易于使用且易于设置,但是您无法对执行任务工作的位置/谁进行细粒度控制。并且,从逻辑角度来看,信息流并不是那么清楚。