def _execute(self, job, timeout=None): if isinstance(job, str): job = Job(job) if timeout is None: timeout = self.timeout_max_overflow with self.lock: send(self.master, job.serialize()) while True: try: socks = dict(self.poller.poll(timeout)) break except zmq.ZMQError as e: if e.errno != errno.EINTR: raise if socks.get(self.master) == zmq.POLLIN: return extract_result(recv(self.master)) raise TimeoutError(timeout / 1000)
def test_job(self): job = Job('somedata', {'one': '1'}) data = job.serialize() job2 = Job.load_from_string(data) self.assertTrue(job.data, job2.data) self.assertTrue(job.headers.items(), job2.headers.items())