docs: def setup_zmq(self):
          """Set up a PUSH and a PULL socket.  The PUSH socket will push out
          requests to the workers.  The PULL socket will receive responses from
          the workers and reply through the server socket."""
          self.context = zmq.Context()
          self.push = self.context.socket(zmq.PUSH)
          self.push_port = self.push.bind_to_random_port("tcp://%s" % self.host)
          # start a listener for the pull socket
          eventlet.spawn(self.zmq_pull)
          eventlet.sleep(0)