summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Bespalov <kbespalov@mirantis.com>2016-07-25 15:11:53 +0300
committerkbespalov <kbespalov@mirantis.com>2016-07-26 19:32:09 +0300
commita6f0aaed3ff2e2ce40665d4e90e92da9d3b3c753 (patch)
tree35d975696fa8f5a0a1f7a4a40d3912eb0c4aaa07
parent0ecc25509fa8188109f48f85702c2271c23baf7f (diff)
downloadoslo-messaging-a6f0aaed3ff2e2ce40665d4e90e92da9d3b3c753.tar.gz
Delete fanout queues on gracefully shutdown
No reasons to kept fanout queues in case then a rpc server is gracefully shutdown. The expiration time of the fanout queue is too long (30 mins), so for large scales it can accumulate a lot of messages before it be removed Closes-Bug: 1606213 Change-Id: Ieaa35c454df542042f3a5424d70f87d486693024
-rw-r--r--oslo_messaging/_drivers/impl_rabbit.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py
index f788bba..a0f9ddf 100644
--- a/oslo_messaging/_drivers/impl_rabbit.py
+++ b/oslo_messaging/_drivers/impl_rabbit.py
@@ -844,6 +844,11 @@ class Connection(object):
"""Close/release this connection."""
self._heartbeat_stop()
if self.connection:
+ for consumer, tag in self._consumers.items():
+ if consumer.type == 'fanout':
+ LOG.debug('[connection close] Deleting fanout '
+ 'queue: %s ' % consumer.queue.name)
+ consumer.queue.delete()
self._set_current_channel(None)
self.connection.release()
self.connection = None
@@ -852,7 +857,6 @@ class Connection(object):
"""Reset a connection so it can be used again."""
recoverable_errors = (self.connection.recoverable_channel_errors +
self.connection.recoverable_connection_errors)
-
with self._connection_lock:
try:
for consumer, tag in self._consumers.items():