按task队列逐一执行 :return: 返回执行结果
(self)
| 50 | self.task_queue.append(task) |
| 51 | |
| 52 | def taskrunner(self): |
| 53 | ''' |
| 54 | 按task队列逐一执行 |
| 55 | :return: 返回执行结果 |
| 56 | ''' |
| 57 | # 通过任务队列长度来判断task是否为连续执行,用于task的跨机器执行判断 |
| 58 | length = len(self.task_queue) - 1 |
| 59 | last_flag = False # 用于标记当前启动的task是否存在连续的前置task |
| 60 | for task in self.task_queue: |
| 61 | have_next = False |
| 62 | if length > 0: |
| 63 | have_next = True |
| 64 | length -= 1 |
| 65 | # 将task状态插入params中,让工具或其他环节可以捕获 |
| 66 | self.params['hava_next'] = have_next |
| 67 | self.params['last_flag'] = last_flag |
| 68 | source = SourceManager(self.params, task.task_type, self.tool, have_next, last_flag) |
| 69 | logger.info('task start : %s' % task.task_type) |
| 70 | params = source.pre_task() |
| 71 | if not last_flag: # 仅task列表第一个task才会执行 |
| 72 | InitParams.prepare_params_after_load_source(self.params) |
| 73 | result = task.runner(params) |
| 74 | self.params = source.done_task(result) |
| 75 | logger.info('task done : %s' % task.task_type) |
| 76 | last_flag = True |
| 77 | |
| 78 | return self.params |
| 79 | |
| 80 | def _taskproducer(self, task_type): |
| 81 | ''' |
nothing calls this directly
no test coverage detected