diff --git a/lib/galaxy/queue_worker.py b/lib/galaxy/queue_worker.py index 28e0bdd84ab..c2f6ade4cae 100644 --- a/lib/galaxy/queue_worker.py +++ b/lib/galaxy/queue_worker.py @@ -326,6 +326,8 @@ class GalaxyQueueWorker(ConsumerProducerMixin, threading.Thread): def bind_and_start(self): log.info("Binding and starting galaxy control worker for %s", self.app.config.server_name) self.control_queue = galaxy.queues.control_queue_from_config(self.app.config) + # Delete messages for this control queue on startup + self.control_queue(self.connection).delete() self.start() def get_consumers(self, Consumer, channel): diff --git a/test/unit/queue_worker/test_queue_worker.py b/test/unit/queue_worker/test_queue_worker.py index 249ab5001c2..2ce958292b3 100644 --- a/test/unit/queue_worker/test_queue_worker.py +++ b/test/unit/queue_worker/test_queue_worker.py @@ -77,6 +77,7 @@ def test_send_control_task_get_result(queue_worker_factory): def test_send_local_control_task_with_non_target_listeners(queue_worker_factory): app1 = queue_worker_factory('test_server1') app2 = queue_worker_factory('test_server2') + assert app2.some_var == 'foo' send_local_control_task(app=app1, task='echo') wait_for_var(app1, 'some_var', 'bar') assert app2.some_var == 'foo' @@ -84,6 +85,7 @@ def test_send_local_control_task_with_non_target_listeners(queue_worker_factory) def test_send_control_task_noop_self(queue_worker_factory): app = queue_worker_factory('test_server') + assert app.some_var == 'foo' response = send_control_task(app=app, task='echo', noop_self=True, get_response=True) assert response == 'NO_OP' assert app.some_var == 'foo'