Transport reconnection retries for notification
This patch add support of reconnection retries for the messaging notifier. Related bug #1282639 Change-Id: Ia30331f8306ff0f6952d83ef42ff8bee6b900427
This commit is contained in:
@@ -389,9 +389,9 @@ class AMQPDriverBase(base.BaseDriver):
|
||||
return self._send(target, ctxt, message, wait_for_reply, timeout,
|
||||
retry=retry)
|
||||
|
||||
def send_notification(self, target, ctxt, message, version):
|
||||
def send_notification(self, target, ctxt, message, version, retry=None):
|
||||
return self._send(target, ctxt, message,
|
||||
envelope=(version == 2.0), notify=True)
|
||||
envelope=(version == 2.0), notify=True, retry=retry)
|
||||
|
||||
def listen(self, target):
|
||||
conn = self._get_connection(pooled=False)
|
||||
|
||||
@@ -168,7 +168,9 @@ class FakeDriver(base.BaseDriver):
|
||||
# transport always works
|
||||
return self._send(target, ctxt, message, wait_for_reply, timeout)
|
||||
|
||||
def send_notification(self, target, ctxt, message, version):
|
||||
def send_notification(self, target, ctxt, message, version, retry=None):
|
||||
# NOTE(sileht): retry doesn't need to be implemented, the fake
|
||||
# transport always works
|
||||
self._send(target, ctxt, message)
|
||||
|
||||
def listen(self, target):
|
||||
|
||||
@@ -697,10 +697,10 @@ class Connection(object):
|
||||
"""Send a 'fanout' message."""
|
||||
self.publisher_send(FanoutPublisher, topic=topic, msg=msg, retry=retry)
|
||||
|
||||
def notify_send(self, exchange_name, topic, msg, **kwargs):
|
||||
def notify_send(self, exchange_name, topic, msg, retry=None, **kwargs):
|
||||
"""Send a notify message on a topic."""
|
||||
self.publisher_send(NotifyPublisher, topic=topic, msg=msg,
|
||||
exchange_name=exchange_name)
|
||||
exchange_name=exchange_name, retry=retry)
|
||||
|
||||
def consume(self, limit=None, timeout=None):
|
||||
"""Consume from all queues/consumers."""
|
||||
|
||||
@@ -788,10 +788,10 @@ class Connection(object):
|
||||
"""Send a 'fanout' message."""
|
||||
self.publisher_send(FanoutPublisher, topic, msg, retry=retry)
|
||||
|
||||
def notify_send(self, exchange_name, topic, msg, **kwargs):
|
||||
def notify_send(self, exchange_name, topic, msg, retry=None, **kwargs):
|
||||
"""Send a notify message on a topic."""
|
||||
self.publisher_send(NotifyPublisher, topic, msg, timeout=None,
|
||||
exchange_name=exchange_name, **kwargs)
|
||||
exchange_name=exchange_name, retry=retry, **kwargs)
|
||||
|
||||
def consume(self, limit=None, timeout=None):
|
||||
"""Consume from all queues/consumers."""
|
||||
|
||||
@@ -945,9 +945,11 @@ class ZmqDriver(base.BaseDriver):
|
||||
# retry anything
|
||||
return self._send(target, ctxt, message, wait_for_reply, timeout)
|
||||
|
||||
def send_notification(self, target, ctxt, message, version):
|
||||
def send_notification(self, target, ctxt, message, version, retry=None):
|
||||
# NOTE(ewindisch): dot-priority in rpc notifier does not
|
||||
# work with our assumptions.
|
||||
# NOTE(sileht): retry is not implemented because this driver never
|
||||
# retry anything
|
||||
target = target(topic=target.topic.replace('.', '-'))
|
||||
return self._send(target, ctxt, message, envelope=(version == 2.0))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user