Ich habe eine Anwendung geschrieben in Ruby, die mehrere Threads hat, die jeweils Anforderungen an Remote-AMQP-Endpunkte senden. Diese Threads werden von Zeit zu Zeit erzeugt, wenn neue Aufgaben ausgeführt werden müssen.RabbitMQ: Nachrichten an Threads routen
Wenn ich temporäre, exklusive Warteschlangen pro Thread zum Senden von Antworten auf ihre Anforderungen verwenden, wird es einfach, den Code für die Verarbeitung eingehender Nachrichten in diesem Ruby-Dienst zu schreiben. Die Warteschlangen werden gelöscht, sobald der zugehörige Kanal geschlossen ist, so dass sie nach dem Ende ihres Zwecks nicht mehr dort bleiben. Die Alternativen, die ich mir vorstellen kann, erfordern, dass ein Listener-Thread eine oder mehrere Warteschlangen überwacht, die alle eingehenden Nachrichten/Antworten in den Ruby-Dienst empfangen und diese Nachrichten dann mit einigen Nachrichtenkennungen an wartende Threads weiterleiten. Dies scheint komplizierter und ich kann RabbitMQ nicht für das gesamte erforderliche semantische Routing verwenden.
Ist das erste Modell ein brauchbares Modell für die AMQP-Kommunikation? Gibt es ein besseres Muster für den Umgang mit diesem Fall?