2017-08-24 8 views
0

2つの独立した非同期イベントが完了すると、別のイベントをトリガする必要があります。私たちは、各非同期イベントの完了時に個々のrabbitmqメッセージを公開しています。私はRabbitMQのドキュメントを読んだが、これを優雅に扱う方法は見つけられなかった。2つのイベントに基づくRabbitMQサブスクライバ

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

ここで私を助けるデザインパターンはありますか? RabbitMQ以外のものも問題ありません。ポーリングなしでこれを達成したいと思います。タスクは3つの異なるシステムで完全に独立して起こっています。

セロリはこれを助けることができますか?

答えて

0

RabbitMQ自体のアグリゲータパターンを使用してこれを実装しました。

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

我々は、トピック(アグリゲータ)を作成しました。タスクAとタスクBがそれにサブスクライブされています。いずれかのタスクが完了すると、メッセージはトピックにプッシュされます。トピックはtaskAとtaskBの状態を維持し、両方のタスクが完了すると別のメッセージを発行します。

関連する問題