From 034a1be99f2c80a24cd5e63cd7a19bf259e1cc4c Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Tue, 20 May 2014 11:55:24 -0400 Subject: [PATCH] When using AMQP, if the AMQP server goes down this will now more nicely catch the Connection refused error in send_control_task --- lib/galaxy/queue_worker.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/queue_worker.py b/lib/galaxy/queue_worker.py index 5f2734e8c71..76a4bcd7bee 100644 --- a/lib/galaxy/queue_worker.py +++ b/lib/galaxy/queue_worker.py @@ -70,11 +70,16 @@ def send_control_task(trans, task, noop_self=False, kwargs={}): 'kwargs': kwargs} if noop_self: payload['noop'] = trans.app.config.server_name - c = Connection(trans.app.config.amqp_internal_connection) - with producers[c].acquire(block=True) as producer: - producer.publish(payload, exchange=galaxy.queues.galaxy_exchange, - declare=[galaxy.queues.galaxy_exchange] + galaxy.queues.all_control_queues_for_declare(trans.app.config), - routing_key='control') + try: + c = Connection(trans.app.config.amqp_internal_connection) + with producers[c].acquire(block=True) as producer: + producer.publish(payload, exchange=galaxy.queues.galaxy_exchange, + declare=[galaxy.queues.galaxy_exchange] + galaxy.queues.all_control_queues_for_declare(trans.app.config), + routing_key='control') + except Exception: + # This is likely connection refused. + # TODO Use the specific Exception above. + log.exception("Error sending control task: %s." % payload) # Tasks -- to be reorganized into a separate module as appropriate. This is