我们需要在两个独立的异步事件完成时触发另一个事件。我们将在每个异步事件完成后发布单独的 rabbitmq 消息。我浏览了 RabbitMQ 文档,但没有找到优雅地处理这个问题的方法。
Scenario:
- Task A completed
- Task B completed
Start task C only if A & B are completed.
有什么设计模式可以帮助我吗?RabbitMQ 之外的任何东西也很好。我们希望在没有轮询的情况下实现这一目标。任务在 3 个不同的系统中完全独立发生。
芹菜能在这方面提供帮助吗?
我们在 RabbitMQ 本身中使用 Aggregator 模式实现了这一点。
http://www.enterpriseintegrationpatterns.com/patterns/messaging/Aggregator.html
我们创建了一个主题(聚合器(。任务 A 和任务 B 已订阅。每当任何任务完成时,消息都会被推送到主题。主题是维护任务 A 和任务 B 的状态,并在两个任务完成后发布另一条消息。