Wie kann ein RabbitMQ-Client sagen, wenn es verliert die Verbindung zum server?

Wenn ich bin immer in Verbindung zu RabbitMQ und das warten auf Ereignisse mit einem EventingBasicConsumer, wie kann ich feststellen, ob ich schon vom server getrennt?

Ich weiß, es ist ein Shutdown-event, aber es hat nicht Feuer, wenn ich ziehen Sie meine Netzwerk-Kabel simulieren einen Ausfall.

Ich habe auch versucht die ModelShutdown Ereignis, und CallbackException auf dem Modell, aber keiner scheint zu funktionieren.

BEARBEITEN-----
Die, die ich als "Antwort" gekennzeichnet ist korrekt, aber es wurde nur ein Teil der Lösung für mich. Es gibt auch die HeartBeat-Funktionalität integriert RabbitMQ. Den server gibt es in der Konfigurationsdatei. Es wird standardmäßig auf 10 Minuten, aber natürlich können Sie das ändern.

Kann der AUFTRAGGEBER auch verlangen, ein anderes Intervall für den heartbeat von der Einstellung der RequestedHeartbeat Wert auf die ConnectionFactory-Instanz.

  • Sie können einen Herzschlag, um die Verbindung, die erkennt, service werden kann
  • Können Sie Ihre ganze code? Ich stehe vor demselben Problem. Vielen Dank im Voraus.
  • Sie wirklich brauchen 3 Dinge. 1 die ConnectionFactory braucht eine RequestedHeartBeat. 2. nachdem Sie eine Verbindung erstellen, definieren Sie die ConnectionShutdown Ereignis, wie beschrieben, in die markierte Antwort. 3 stellen Sie sicher, Sie haben es richtig eingestellt in der config-Datei rabbitmq. (sorry, ich habe nicht das Teil rund derzeit.) Ich werde sehen, ob ich kann extrahieren Sie den code, ohne auf die Implementierung der spezifische Sachen.
  • Ich postete ein Beispiel als Antwort unten, dass ich hoffe, dass hilft.
InformationsquelleAutor Kelly | 2013-02-22
Schreibe einen Kommentar