当两个独立的异步事件完成时,我们需要触发另一个事件。我们将在每个异步事件完成时发布单个rabbitmq消息。我浏览了RabbitMQ文档,但没有找到办法优雅地处理这个问题。
Scenario:
- Task A completed
- Task B completed
Start task C only if A & B are completed.
有没有可以帮助我的设计模式? RabbitMQ以外的任何东西都没问题。我们希望在没有投票的情况下实现这一目标。任务完全独立于3个不同的系统中。
芹菜有助于此吗?
答案 0 :(得分:0)
我们在RabbitMQ中使用Aggregator模式实现了这一点。
http://www.enterpriseintegrationpatterns.com/patterns/messaging/Aggregator.html
我们创建了一个主题(聚合器)。任务A和任务B都订阅了它。只要任何任务完成,就会将消息推送到主题。主题是维护taskA和taskB的状态,并在两个任务完成后发布另一条消息。