2012-12-18 34 views
-1

我正在用RabbitMQ的芹菜作为经纪人。我的项目将由一些长时间运行的连续任务组组成。前一组任务的输出是下一组任务的输入。芹菜 - 有多少个队列?

所有的工作节点将首先消耗第一类型(组)的任务,然后所有的工作人员将消耗下一类型的任务,以先前的结果作为输入等。

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

预先感谢您!

回答

1

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

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

单个队列的好处是它使用起来很简单,而且设置起来更容易,但是对于执行任务工作的地方/谁来说,你会失去细致的控制。而且,从逻辑的角度来看,信息流是不明确的。