Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class XREQConnect(object):
- def __init__(self, server_list):
- context = zmq.Context()
- self.socket = context.socket(zmq.XREQ)
- for addr in server_list:
- self.socket.connect(addr)
- def send(self, msg, depth=0, max_depth=4):
- self.socket.send(msg)
- t = time.time()
- while True:
- try:
- reply = self.socket.recv(zmq.NOBLOCK)
- except zmq.ZMQError, e:
- if e.errno == zmq.EAGAIN:
- # no message was ready
- if depth == max_depth:
- raise Exception("max depth reached")
- if time.time() >= t + 2:
- return self.send(msg, depth + 1)
- break
- else:
- raise # real error
- else:
- # process message
- return reply
- def disconnect(self):
- self.socket.close()
Add Comment
Please, Sign In to add comment