From 766aba722b508dbb7956e066b2946a48359f1500 Mon Sep 17 00:00:00 2001 From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl> Date: Sun, 8 Oct 2017 04:47:37 +0200 Subject: [PATCH] o --- coolamqp/clustering/cluster.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py index 5d77c96..741efb4 100644 --- a/coolamqp/clustering/cluster.py +++ b/coolamqp/clustering/cluster.py @@ -51,7 +51,14 @@ class Cluster(object): raise NotImplementedError(u'Multiple nodes not supported yet') self.node, = nodes - self.on_fail = on_fail + + if self.on_fail is not None: + def decorated(): + if not self.listener.terminating: + on_fail() + self.on_fail = decorated + else: + self.on_fail = on_fail def declare(self, obj, persistent=False): """ @@ -176,10 +183,7 @@ class Cluster(object): self.snr = SingleNodeReconnector(self.node, self.attache_group, self.listener) self.snr.on_fail.add(lambda: self.events.put_nowait(ConnectionLost())) if self.on_fail is not None: - self.snr.on_fail.add( - (lambda snr, of: lambda: of() if not snr.terminating else None)( - self.listener, self.on_fail) - ) + self.snr.on_fail.add(self.on_fail) # Spawn a transactional publisher and a noack publisher self.pub_tr = Publisher(Publisher.MODE_CNPUB) -- GitLab