Ich habe eine Rabbitmq-Server und eine AMQP-Consumer (Python) mit Kombu.
Ich habe meine App in einem System installiert, das eine Firewall hat, die inaktive Verbindungen nach 1 Stunde beendet. Dies ist
meine amqp_consumer.py:RabbitMQ Heartbeat vs Verbindung Drain-Ereignisse Timeout
try:
# connections
with Connection(self.broker_url, ssl=_ssl, heartbeat=self.heartbeat) as conn:
chan = conn.channel()
# more stuff here
with conn.Consumer(queue, callbacks = [messageHandler], channel = chan):
# Process messages and handle events on all channels
while True:
conn.drain_events()
except Exception as e:
# do stuff
, was ich will, ist, dass, wenn die Firewall die Verbindung geschlossen, dann möchte ich wieder an. Soll ich das Heartbeat-Argument verwenden oder sollte ich ein Timeout-Argument (von 3600 Sekunden) an die drain_events()
-Funktion übergeben?
Was sind die Unterschiede zwischen den beiden Optionen? (scheint dasselbe zu tun).
Danke.