Gibt es in Rebus eine Möglichkeit, die Verarbeitung von Nachrichten so zu steuern, dass Nachrichten sequenziell verarbeitet werden? dh erste verarbeitet, dann entfernt dann Sekunde verarbeitet usw.Sequentielle Verarbeitung von Nachrichten
Antwort
Ja - und nein :)
Zunächst einmal, ich möchte nur sagen, dass es am besten ist, dass Sie alles in Ihrer Macht tun, um Ihr System in ein Design So wird es tolerant gegenüber neu angeordneten Nachrichten. Sie werden viel glücklicher in der Zukunft sein, wenn Ihr System in der Lage ist, in einem konsistenten Zustand zu enden, obwohl eine oder mehrere Nachrichten für eine Weile auf dem Weg in einer Fehlerwarteschlange geparkt waren.
Und wenn ich sage "tolerant to reordered message", meine ich nicht unbedingt "alle Nachrichten in völlig zufälliger Reihenfolge" ... eher wie "leicht nachbestellt" und/oder "einige von ihnen müssen drin sein Ordnung, kann aber viele von ihnen nachbestellen ". Im Rahmen des Zumutbaren.
Es klingt für mich wie Ihre Anforderung ist sehr streng - und die einzige Möglichkeit, das zu erreichen, ist ein einziger Thread (mit einer Parallelität von 1) Verarbeitung von Nachrichten, verwerfen (oder auf der Rückseite der Warteschlange, wenn die Nachrichten sind wichtig) Nachrichten, die nicht als nächste erwartet wurden.
Wenn das Verschieben von Nachrichten in den hinteren Bereich der Warteschlange zu grob ist (es kann langsam werden, wenn Sie viele Nachrichten haben oder wenn sie oft nicht ordnungsgemäß ankommen), können Sie eine Nachricht verwenden, um Nachrichten in Warteschlange zu stellen richtige Nachricht, und zu diesem Zeitpunkt können Sie tun, was Sie tun müssen.
Ich hoffe, das macht Sinn :) bitte lassen Sie mich wissen, wenn etwas nicht klar ist.
- 1. Parallele Verarbeitung von JMS-Nachrichten?
- 2. Wann überwindet die parallele Verarbeitung die sequentielle Verarbeitung?
- 3. Sequentielle Ausführung von Java-Programmen == sequentielle Aktivierung des jvm?
- 4. Weblogic 12c - Plötzlich gestoppt JMS Server Verarbeitung von Nachrichten
- 5. NServiceBus - Lange laufende Handler verhindert Queue Verarbeitung von anderen Nachrichten
- 6. Ereignisgesteuerte vs sequentielle Programmierung
- 7. Wildcard für sequentielle Bilder
- 8. R - xlim sequentielle Erhöhung
- 9. mehrere, sequentielle fetch() Promise
- 10. jQuery Sequentielle Liste Problem
- 11. Wie werden Nachrichten in Perl zur Verarbeitung eingerichtet?
- 12. Verarbeitung Microsoft Office Outlook 2003/2007 E-Mail-Nachrichten
- 13. Sequentielle Guid und Fragmentierung
- 14. Sequentielle Kupplung in Code
- 15. Oracle Sequentielle Aktionen
- 16. Was ist sequentielle Überflutung?
- 17. UIDynamicAnimator Sequentielle Animation
- 18. eckig 2 sequentielle Rohre
- 19. WPF: Dispatcher-Verarbeitung ausgesetzt wurde, aber Nachrichten noch verarbeitet werden
- 20. ASP MVC nicht sequentielle Elemente
- 21. Logstash sequentielle Thread-Ausführung Fluss
- 22. regex: Wechsel Zeichen/sequentielle numerische
- 23. Nicht-sequentielle Substitution in SymPy
- 24. NServiceBus Verarbeitung Nachricht später
- 25. Verarbeitung großer Datenmengen mit Java
- 26. Verarbeitung von NSDictionary-Daten
- 27. Anzeigen von Django-Nachrichten Framework-Nachrichten
- 28. Was kann dazu führen, dass DefWindowProc die Verarbeitung von Nachrichten stoppt?
- 29. Java-Muster für die Verarbeitung von Nachrichten mit mehreren XML-Schemas
- 30. Wie mache ich eine Schlange zur Verarbeitung von Nachrichten nach 24 Stunden in ActiveMQ
@ Mooid8000: Dies würde nicht funktionieren, wenn ich meine Handler auf mehreren Maschinen laufen. Richtig? – Chandu
richtig - Sie benötigen eine Art verteilter Serialisierungsmechanismus, damit das funktioniert ... aber im Allgemeinen ist es am besten, Warteschlangen für Arbeiten zu verwenden, die gleichzeitig verteilt und verarbeitet werden können, möglicherweise parallel auf mehreren Maschinen, und daher am besten funktioniert Die Arbeit, die zur Verarbeitung jeder Nachricht erforderlich ist, ist ziemlich unabhängig und konkurriert nicht um die gleichen Ressourcen – mookid8000