У меня есть сервер rabbitmq и потребитель-amqp (python) с помощью комбу.
Я установил свое приложение в систему с брандмауэром, который закрывает незанятые соединения через 1 час.
Это мой amqp_consumer.py:RabbitMQ heartbeat vs connection drain events 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
то, что я хочу, что если брандмауэр закрыл соединение, то я хочу, чтобы восстановить. должен ли я использовать аргумент heartbeat или должен передать аргумент таймаута (3600 секунд) функции drain_events()
?
Каковы различия между обоими параметрами? (похоже, делает то же самое).
Спасибо.