Problème:messages de process en séquence avec les consommateurs concurrents
- Je reçois des messages (dire les commandes) sur une file d'attente dans une séquence particulière (FIFO)
- Je concurrents les consommateurs sur la file d'attente
- Pour ajouter encore à la complexité, le consommateur pourrait être intéressé par des versions spécifiques uniquement de l'ordre en fonction de son état. (Say version1, la version 2 et Version5)
- le numéro de version de commande est disponible sur l'ordre, mais ne peut pas être utilisé pour le séquençage depuis mon auditeur pourrait ne pas être intéressé par toutes les versions (Le consommateur pourrait ne s'intéresser qu'aux versions Dites version1, version 2 et version5)
Comment est-ce que je m'assure de traiter les messages dans l'ordre où je les ai reçus?
Merci pour la réponse. Scott J'ai pensé à avoir un stockage distribué pour identifier quelle version nous sommes traités, mais cela ne fonctionnera pas pour identifier le premier événement. (Imaginez la version 1 en cours de traitement par Listener 1 et Version2 en cours de traitement par Listener 2. Nous ne pouvons pas garantir l'ordre, les deux pourraient ne pas trouver un enregistrement quand ils recherchent). Dans notre cas, ce n'est pas non plus un ensemble fini. Nous avons besoin d'une file d'attente pour FIFO et garantie de livraison et d'autres mécanismes de basculement. aimerait entendre vos réflexions sur toute autre technologie qui peut être considéré comme – user7161330
autres que sérialisation par un seul consommateur, ne savent pas qu'il y ait une solution, si vous ne pouvez pas déterminer l'état (c.-à-v2 peut/ne peut pas être le premier événement à traiter, et aucun moyen de vérifier) alors pas sûr qu'il existe une solution viable. Avant même d'essayer de coder, il y a un diagramme d'état que vous devez mettre ensemble ... –