基于两个事件的 RabbitMQ 订阅者

RabbitMQ subscriber based on two events

我们需要在两个独立的异步事件完成时触发另一个事件。我们在每个异步事件完成时发布单独的 rabbitmq 消息。我浏览了 RabbitMQ 文档,但没有找到一种优雅地处理这个问题的方法。

Scenario:
- Task A completed
- Task B completed
Start task C only if A & B are completed.

这里有什么设计模式可以帮助我吗? RabbitMQ 之外的任何东西也可以。我们希望在不进行轮询的情况下实现这一目标。任务在 3 个不同的系统中完全独立发生。

芹菜对此有帮助吗?

我们在 RabbitMQ 本身中使用聚合器模式实现了这一点。

http://www.enterpriseintegrationpatterns.com/patterns/messaging/Aggregator.html

我们创建了一个主题(聚合器)。任务 A 和任务 B 订阅了它。每当任何任务完成时,消息就会被推送到主题。主题维护 taskA 和 taskB 的状态,并在两个任务完成后发布另一条消息。