rabbitmq mehrere Verbraucher, die in einer Warteschlange - nur kriegt die Nachricht

Implementiert habe ich mehrere Verbraucher, die das abrufen von Nachrichten aus einer Warteschlange, ich mache das mit etwas ähnlich dieses Beispiel, außer, dass ich das Tue basic.Holen Sie sich in eine unendliche Schleife für die Abfrage an.

Irgendeine Idee, wie kann ich verhindern, dass Rennen zwischen allen Verbrauchern, d.h. nur eine Verbraucher die Nachricht erhalten und die anderen werden weiterhin zu tun, polling, bis eine andere Meldung kommt?

Ich habe versucht, Folgen einer Logik, in dem, sobald ich die Meldung bekomme ich ack es für die Nachricht entfernt werden, aber seine scheint, dass einige andere queues zu verwalten, zu erhalten, wird die Nachricht auch vor dem ersten ack hat und entfernt die Nachricht.
Also jeder bekam diese Meldung.

Vielen Dank im Voraus

  • Wie sind Sie mit der Veröffentlichung der Nachricht in der Warteschlange? Wie werden Sie verbraucht? Verstehe ich richtig, dass alle Ihre Kunden die Nachricht erhalten, und nicht nur ein -, sondern Sie wollen nur ein client, um es zu empfangen? Oder muss nur ein client die Nachricht erhalten, und Sie wollen jeder, um es zu empfangen?
  • Publishing über den Kanal.basic_publish -direkt mit routing_key konsumieren es mit basic_get, genau wie im Beispiel oben
  • Alle meine Verbraucher die Nachricht erhalten , und ich möchte, dass die erste die es geschafft haben, verarbeiten es, und dass nur ein Verbraucher jede Nachricht aus der Warteschlange, der eine, der zur Verfügung steht
InformationsquelleAutor JavaSa | 2015-09-30
Schreibe einen Kommentar