diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Bcfg2/Reporting/Transport/RedisTransport.py | 8 |
1 files changed, 5 insertions, 3 deletions
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']) |