Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Server(threading.Thread):
- def __init__(self):
- threading.Thread.__init__(self)
- self.queue = []
- def run(self):
- self.context = zmq.Context()
- self.frontend = self.context.socket(zmq.ROUTER)
- self.frontend.bind('tcp://*:5570')
- self.poller = zmq.Poller()
- self.poller.register(self.frontend, zmq.POLLIN)
- self.processor = Processor()
- while True:
- while len(self.queue) < 8:
- sockets = dict(self.poller.poll())
- # queue up messages
- if self.frontend in sockets:
- ident, zf, msg = self.frontend.recv_multipart()
- tprint('Server received %s from %s' % (msg, ident))
- self.queue.append([ident, zf, msg])
- else:
- break
- # process queue
- tprint('Processing batch of size %d' % len(self.queue))
- result = self.processor.process(self.queue)
- for message in result:
- self.frontend.send_multipart(message)
- self.queue = []
Add Comment
Please, Sign In to add comment