Guest User

Untitled

a guest
Dec 14th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. class Server(threading.Thread):
  2. def __init__(self):
  3. threading.Thread.__init__(self)
  4. self.queue = []
  5.  
  6. def run(self):
  7. self.context = zmq.Context()
  8.  
  9. self.frontend = self.context.socket(zmq.ROUTER)
  10. self.frontend.bind('tcp://*:5570')
  11.  
  12. self.poller = zmq.Poller()
  13. self.poller.register(self.frontend, zmq.POLLIN)
  14.  
  15. self.processor = Processor()
  16.  
  17. while True:
  18. while len(self.queue) < 8:
  19. sockets = dict(self.poller.poll())
  20.  
  21. # queue up messages
  22. if self.frontend in sockets:
  23. ident, zf, msg = self.frontend.recv_multipart()
  24. tprint('Server received %s from %s' % (msg, ident))
  25. self.queue.append([ident, zf, msg])
  26. else:
  27. break
  28.  
  29. # process queue
  30. tprint('Processing batch of size %d' % len(self.queue))
  31. result = self.processor.process(self.queue)
  32. for message in result:
  33. self.frontend.send_multipart(message)
  34. self.queue = []
Add Comment
Please, Sign In to add comment