def blocking_run(self):
parent_conn, child_conn = Pipe()
q = Queue()
q.put(self.parameters)
self.p = Process(target=job_process, args=(self.job_id, self.job_class, q, child_conn, self.server_url, self.log_filename, ))
self.p.start()
while self.p.is_alive():
while parent_conn.poll():
self.output_recieved_from_job(parent_conn.recv())
time.sleep(1)
self.p.join()
while parent_conn.poll():
self.output_recieved_from_job(parent_conn.recv())
if self.terminated:
self.result = {'job_id':self.job_id, 'success':False, 'retcode':1, 'exception':'Terminated by server', 'progress':'terminated'}
else:
self.result = q.get()
self.result['progress'] = self.status
parent_conn.close()
return self.result
评论列表
文章目录