2016-06-10 21 views
0

Wenn ein Benutzer eine Warteschlange als 'exklusiv' deklariert, wird die Warteschlange gelöscht, wenn der Benutzer die Verbindung zur Dokumentation trennt.RabbitMQ Exklusive Warteschlange Verlorene Nachrichten

Angenommen, es sind Nachrichten in der Warteschlange, die auf die Verarbeitung warten und der Verbraucher offline geht, alle Nachrichten in dieser 'exklusiven' Warteschlange gehen verloren, wenn die Warteschlange entfernt wird.

Gibt es Strategien oder Möglichkeiten, eine Warteschlange 'exklusiv' zu behalten, aber die Nachrichten in der Warteschlange/Broker zu bewahren, so dass nichts verloren geht?

Vielen Dank im Voraus.

Antwort

1

Die exklusive Warteschlange wird gelöscht, wenn der Kanal, der sie erstellt hat, die Verbindung trennt.

Was Sie wahrscheinlich wollen, ist ein exklusiver Consumer, der durch Setzen des Parameters exclusive auf "True" gesetzt werden kann, wenn er aus einer Warteschlange konsumiert wird. Ein exklusiver Consumer stellt sicher, dass nur ein Verbraucher diese Warteschlange nutzen kann. Alle anderen Konsumenten werden nach dem Verbrauch aus der Warteschlange ausgeschlossen.

Zusammengefasst eine Warteschlange stellen exklusiv für einen Verbraucher und die Nachrichten in dieser Warteschlange anhalten, sollten Sie:

  • die Warteschlange Deklarieren dauerhaft sein
  • Wenn Produzent veröffentlicht Meldung, die Meldung ‚s Liefermodus sollte auf persistente
  • ausschließliche Verwendung Verbraucher
+0

Sie ken danken. Das hat mir geholfen. Dies ist in der Dokumentation begraben. – user3412955