示例#1
0
 def run(self):
     while True:
         patientAllTasksDict = self.queue.get()
         patientError=False
         subtaskList=map(lambda x: str(x), sorted(map(lambda x: int(x), patientAllTasksDict.keys())))
         for subTaskGroup in subtaskList:
             if patientError: break
             subTaskGroupDict=patientAllTasksDict[subTaskGroup]
             for JobDict in subTaskGroupDict:
                 self.parallelDicts.append(JobDict)
             jobEvent = threading.Event()
             jobThread = Job.pipelineJob(jobEvent, self.drmaaSession, self.logFileWriter, self.parallelDicts)
             if not self.runThreadAndWait(jobThread, jobEvent): 
                 patientError=True
                 continue # break out of current iteration of for loop because error occurred in job
             self.parallelDicts=[]
         self.queue.task_done()