From d2ef855948a34b9494b463ceb57dfd575b2df20f Mon Sep 17 00:00:00 2001 From: Tim Laszlo Date: Fri, 19 Oct 2012 08:49:34 -0500 Subject: Switch redis transport to use pubsub() --- src/lib/Bcfg2/Reporting/Transport/RedisTransport.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/lib/Bcfg2/Reporting/Transport') diff --git a/src/lib/Bcfg2/Reporting/Transport/RedisTransport.py b/src/lib/Bcfg2/Reporting/Transport/RedisTransport.py index 64328d772..22d9af57e 100644 --- a/src/lib/Bcfg2/Reporting/Transport/RedisTransport.py +++ b/src/lib/Bcfg2/Reporting/Transport/RedisTransport.py @@ -125,17 +125,19 @@ class RedisTransport(TransportBase): """ Send a command to the queue. Timeout after 10 seconds """ + pubsub = self._redis.pubsub() + channel = "%s%s" % (platform.node(), int(time.time())) + pubsub.subscribe(channel) self._redis.rpush(RedisTransport.COMMAND_KEY, cPickle.dumps(RedisMessage(channel, method, args, kwargs))) - self._redis.subscribe(channel) - resp = self._redis.listen() + resp = pubsub.listen() signal.signal(signal.SIGALRM, self.shutdown) signal.alarm(10) resp.next() # clear subscribe message response = resp.next() - self._redis.unsubscribe() + pubsub.unsubscribe() try: return cPickle.loads(response['data']) -- cgit v1.2.3-1-g7c22