Add delays before reconnect to RabbitMQ

Change-Id: I0b51a4f9933547864129b18d8f50e8049e79c105
This commit is contained in:
Serg Melikyan 2013-10-22 13:22:01 +04:00
parent 4cb0fd1e17
commit 1e0999b7ad
1 changed files with 10 additions and 0 deletions

View File

@ -52,12 +52,14 @@ class TaskResultHandlerService(service.Service):
return MqClient(**connection_params)
def _handle_results(self):
reconnect_delay = 1
while True:
try:
with self._create_mq_client() as mqClient:
mqClient.declare(conf.results_exchange, conf.results_queue)
with mqClient.open(conf.results_queue,
prefetch_count=100) as results_sb:
reconnect_delay = 1
while True:
result = results_sb.get_message(timeout=1)
if result:
@ -65,13 +67,18 @@ class TaskResultHandlerService(service.Service):
except Exception as ex:
log.exception(ex)
eventlet.sleep(reconnect_delay)
reconnect_delay = min(reconnect_delay * 2, 60)
def _handle_reports(self):
reconnect_delay = 1
while True:
try:
with self._create_mq_client() as mqClient:
mqClient.declare(conf.reports_exchange, conf.reports_queue)
with mqClient.open(conf.reports_queue,
prefetch_count=100) as reports_sb:
reconnect_delay = 1
while True:
report = reports_sb.get_message(timeout=1)
if report:
@ -79,6 +86,9 @@ class TaskResultHandlerService(service.Service):
except Exception as ex:
log.exception(ex)
eventlet.sleep(reconnect_delay)
reconnect_delay = min(reconnect_delay * 2, 60)
@handle
def handle_result(message):