在我们的开发过程中,我们面临以下情况: 事件以某种顺序生成事件链: 让我们说 创建Item1,更新项目1,完成项目1, 创建Item2,更新项目2,完成项目2。
请记住,项目1和2的事件是并行分派的。 我们需要为每个项目顺序处理第1项和第2项的事件,而不阻止不相关的操作,例如:创建项目1并创建项目2可以并行运行,而CreateItem1和更新项目1必须按顺序运行。
主要问题是如何在不为每个项目创建专用队列的情况下实现此类行为? 物品数量未知。 有多个生产者和多个消费者处理事件。
答案 0 :(得分:1)
答案很简单:不要平行发射这些事件。如果必须在Update Item
事件之后处理Create Item
事件,那么Create Item
消费者在完成处理Update Item
事件后应发出Create Item
事件是很自然的。
BTW:每个项目都有一个单独的队列,只有在这样的队列上有一个消费者并且你能保证事件以正确的顺序发出时才有效。