Wie lösche ich selektiv Nachrichten aus einer AMQP (RabbitMQ) -Warteschlange?

Ich möchte Nachrichten selektiv aus einer AMQP-Warteschlange löschen, ohne sie zu lesen.

Das Szenario sieht wie folgt aus:

ie sendende Seite möchte Nachrichten vom Typ X ablaufen lassen, basierend auf der Tatsache, dass neue Informationen vom Typ X eingetroffen sind. Da es sehr wahrscheinlich ist, dass der Abonnent die letzte Nachricht vom Typ X noch nicht konsumiert hat, sollte der Herausgeber einfach frühere Nachrichten vom Typ X löschen und eine neue in die Warteschlange stellen. Der gesamte Vorgang sollte für den Abonnenten transparent sein - in der Tat sollte er STOMP verwenden, um die Nachrichten abzurufen.

Wie mache ich das mit AMQP? Oder vielleicht ist es in einem anderen Nachrichtenprotokoll praktischer?

Ich möchte eine komplizierte Infrastruktur vermeiden. Die gesamte erforderliche Nachrichtenübermittlung ist so einfach wie oben beschrieben: Eine Warteschlange, ein Abonnent, ein Herausgeber. Der Herausgeber muss jedoch in der Lage sein, die Nachrichten für ein bestimmtes Kriterium ad-hoc zu löschen.

Der Publisher-Client wird Ruby verwenden, aber eigentlich würde ich mich mit jeder Sprache befassen, sobald ich im Protokoll erfahre, wie das geht.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage