:param tool_name: 调用的工具类 :param task_types: task类型组,允许多个task同时传入 :param task_dir: task执行的工作路径 :param params: task执行的参数
(self, tool_name, task_types, task_dir, params)
| 20 | |
| 21 | class TaskMgr: |
| 22 | def __init__(self, tool_name, task_types, task_dir, params): |
| 23 | ''' |
| 24 | :param tool_name: 调用的工具类 |
| 25 | :param task_types: task类型组,允许多个task同时传入 |
| 26 | :param task_dir: task执行的工作路径 |
| 27 | :param params: task执行的参数 |
| 28 | ''' |
| 29 | self.task_queue = [] |
| 30 | self.error_code = 0 |
| 31 | self.error_msg = 'nothing' |
| 32 | self.params = params |
| 33 | self.params['task_dir'] = task_dir |
| 34 | self.params['tool_name'] = tool_name |
| 35 | self.params['work_dir'] = os.path.join(task_dir, 'workdir') |
| 36 | |
| 37 | self.task_types = task_types |
| 38 | try: |
| 39 | tool_model = __import__("tool." + tool_name) |
| 40 | except ModuleNotFoundError as err: |
| 41 | logger.warning("不是内置工具,使用自定义工具模块(%s)" % str(err)) |
| 42 | tool_model = __import__("tool.customtool") |
| 43 | tool_name = "customtool" |
| 44 | # raise NodeError(E_NODE, '工具不存在,需要联系管理员进行确认!') |
| 45 | self.tool = getattr(tool_model, tool_name).tool(params) |
| 46 | self.params['src_type'] = self.tool.set_inc_source_type() |
| 47 | for task_type in task_types: |
| 48 | task = self._taskproducer(task_type) |
| 49 | if task: |
| 50 | self.task_queue.append(task) |
| 51 | |
| 52 | def taskrunner(self): |
| 53 | ''' |
nothing calls this directly
no test coverage detected