summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting/Transport
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2012-10-19 08:49:34 -0500
committerTim Laszlo <tim.laszlo@gmail.com>2012-10-19 08:49:34 -0500
commitd2ef855948a34b9494b463ceb57dfd575b2df20f (patch)
treea3dae6018d45feb99fd57331f89ce827a1dead76 /src/lib/Bcfg2/Reporting/Transport
parentc28d2eefca82adc4872183869b10f3915a485ca8 (diff)
downloadbcfg2-d2ef855948a34b9494b463ceb57dfd575b2df20f.tar.gz
bcfg2-d2ef855948a34b9494b463ceb57dfd575b2df20f.tar.bz2
bcfg2-d2ef855948a34b9494b463ceb57dfd575b2df20f.zip
Switch redis transport to use pubsub()
Diffstat (limited to 'src/lib/Bcfg2/Reporting/Transport')
-rw-r--r--src/lib/Bcfg2/Reporting/Transport/RedisTransport.py8
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'])