我正在创建一个工作队列设置,其中不同的工作人员/消费者具有不同的功能。我的意思是并非所有工作人员都可以运行所有工作项目。
假设我有以下工人:
Worker A
Capability 1
Capability 2
Capability 3
Worker B
Capability 1
Worker C
Capability 1
Capability 3
Capability 1
,则可以由任何员工运行。Capability 1
和Capability 2
,则只能由Worker A
运行。Capability 1
和Capability 3
,则可以Worker A
或Worker C
问题
RabbitMQ能否/适合为此类设置调度作业?
答案 0 :(得分:0)
Is RabbitMQ capable/suitable for dispatching jobs for such a setup?
Rabbit MQ在路由消息以及它附带的许多其他更好的功能方面非常灵活。它绝对能够做你希望做的事情。它是否合适是一个难以回答的问题,因为它取决于许多其他因素。
以下是设置您要执行的操作的一种方法
注意:如果有多个消费者有能力处理某个作业(例如:工人A,B& C可以处理JobType1),则无法控制谁从队列中获取消息(JobType1)在这种情况下.queue)。因此,3名工作人员中的一名将接收该信息,而另外两名工作人员将无法获得该信息。