2017-08-24 5 views
0

Nous devons déclencher un autre événement lorsque deux événements asynchrones indépendants sont terminés. Nous publions des messages individuels rabbitmq à la fin de chaque événement asynchrone. J'ai parcouru la documentation de RabbitMQ mais je n'ai pas trouvé un moyen de gérer cela avec élégance.Abonné RabbitMQ basé sur deux événements

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

Y at-il modèle de conception qui peut me aider? Tout ce qui est en dehors de RabbitMQ est aussi bien. Nous aimerions y parvenir sans sondage. Les tâches sont totalement indépendantes dans 3 systèmes différents.

Le céleri peut-il aider?

Répondre

0

Nous l'avons implémenté en utilisant le pattern Aggregator dans RabbitMQ lui-même.

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

Nous avons créé un sujet (aggrégateur). La tâche A et la tâche B y sont souscrites. Chaque fois que la tâche est terminée, le message est transmis au sujet. Sujet maintient l'état de taskA et taskB et publie un autre message une fois que les deux tâches sont terminées.