def get_result(self):
"""
Get result from result queue, do task index confirm meanwhile
Return '' if all tasks have been confirmed
Raises:
Queue.Empty: can not get response within timeout
"""
# check whether all task has been confirmed
# if so, return ''
if self._task_confirm_num==self._cur_task_num:
return ''
# may throw Queue.Empty here
task_result=self._result_queue.get(block=True,timeout=self._timeout)
resultl=task_result.split('|')
index=int(resultl[1],10)
result='|'.join(resultl[2:])
# do confirm
# if it is duplicate, try to get result again
if self._task_confirm_list[index]!=0:
return self.get_result()
self._task_confirm_list[index]=1
self._task_confirm_num+=1
LOG.debug('get result: %s'%task_result.replace('\n',' '))
return result
评论列表
文章目录