我有一些独立的任务,我目前正在为不同的/独立的工人提供这些任务。
为了便于理解,我将向您介绍一个例子。我们说我有三个独立的任务,即sleep
,eat
,smile
。任务可能需要在不同的芹菜配置下工作。所以,我认为,最好将这些任务中的每一个分成不同的工作目录。某些任务可能需要在不同的服务器上运行。
我计划在未来添加更多任务,每个任务都将由不同的开发人员实现。
提供这些条件,每个单独任务都有多个工作人员。
现在,这是问题和我的问题。
当我开始执行三个smile
任务时,其中一个任务将由smile
的工作人员提取并执行。但是下一个任务将从eat
的工作人员那里获取,永远不会被执行。
那么,接受的,最常见的模式是什么?我应该将每个任务发送到不同的队列中吗?工作人员应该监听自己的队列吗?
答案 0 :(得分:1)
答案取决于应该考虑的几件事情:
如果是这样,最好的方法是将某种命令模式作为序列化消息放置,这样每个获取/消费的消息都可以在应用程序中的单个位置按顺序执行。 如果这对您来说不是问题 - 您可以在单次交换中发布不同的消息类型时使用主题交换,并让不同的工作人员通过预定义的模式接收消息。顺便说一句,这将让你轻松添加另一个任务,让我们说“喝”而不改变已有的交通拓扑/现有工人的线路。
如果您的任务流量非常大(就频率而言),可能需要为每种任务类型创建不同的队列,因此,当您成长时,您可以将每个任务放在兔群中的不同节点上。
答案 1 :(得分:0)
在类似的设置中,我决定使用特定队列来执行不同的任务,然后我可以决定哪个工作人员监听哪个队列(也可以动态更改!)。