HoneyTian commited on
Commit
a0d5e3e
·
1 Parent(s): 7d19b1b
Files changed (2) hide show
  1. main.py +3 -3
  2. toolbox/porter/manager.py +13 -16
main.py CHANGED
@@ -105,6 +105,8 @@ def main():
105
 
106
  porter_tasks_file_dir = Path(args.porter_tasks_file_dir)
107
 
 
 
108
  for porter_task_file in porter_tasks_file_dir.glob("porter_task_*.json"):
109
  key = porter_task_file.stem
110
  value = environment.get(key=key, default=False, dtype=bool)
@@ -112,9 +114,7 @@ def main():
112
 
113
  if value is True:
114
  # porter manager
115
- task_manager = PorterManager(
116
- tasks_file=porter_task_file.as_posix()
117
- )
118
  task_thread = threading.Thread(
119
  target=async_thread_wrapper,
120
  args=(task_manager.run(),),
 
105
 
106
  porter_tasks_file_dir = Path(args.porter_tasks_file_dir)
107
 
108
+ # porter manager
109
+ task_manager = PorterManager()
110
  for porter_task_file in porter_tasks_file_dir.glob("porter_task_*.json"):
111
  key = porter_task_file.stem
112
  value = environment.get(key=key, default=False, dtype=bool)
 
114
 
115
  if value is True:
116
  # porter manager
117
+ task_manager.add_tasks_by_task_file(tasks_file=porter_task_file.as_posix())
 
 
118
  task_thread = threading.Thread(
119
  target=async_thread_wrapper,
120
  args=(task_manager.run(),),
toolbox/porter/manager.py CHANGED
@@ -7,18 +7,16 @@ from toolbox.porter.tasks.base_task import BaseTask
7
 
8
 
9
  class PorterManager(object):
10
- def __init__(self,
11
- tasks_file: str,
12
- ):
13
- self.tasks_file = tasks_file
14
-
15
  # state
16
  self.coro_task_set = set()
17
 
18
- def get_init_tasks(self):
19
- with open(self.tasks_file, "r", encoding="utf-8") as f:
 
20
  tasks = json.load(f)
21
 
 
22
  for task in tasks:
23
  enable = task.pop("enable")
24
  task_type = task.pop("type")
@@ -28,14 +26,17 @@ class PorterManager(object):
28
  task_cls = BaseTask.by_name(task_type)
29
  task_obj = task_cls(**task)
30
 
31
- self.coro_task_set.add(task_obj.start())
32
- return self.coro_task_set
33
 
34
- async def run(self):
35
- coro_task_set = self.get_init_tasks()
 
 
36
 
 
37
  future_tasks = list()
38
- for task in coro_task_set:
39
  task = asyncio.ensure_future(task)
40
  # task = asyncio.create_task(task)
41
  future_tasks.append(task)
@@ -43,10 +44,6 @@ class PorterManager(object):
43
 
44
  await asyncio.wait(future_tasks)
45
 
46
- async def run2(self):
47
- future_tasks = self.get_init_tasks()
48
- await asyncio.wait(future_tasks)
49
-
50
 
51
  async def main():
52
  import log
 
7
 
8
 
9
  class PorterManager(object):
10
+ def __init__(self):
 
 
 
 
11
  # state
12
  self.coro_task_set = set()
13
 
14
+ @staticmethod
15
+ def get_coro_task_set_by_task_file(tasks_file: str):
16
+ with open(tasks_file, "r", encoding="utf-8") as f:
17
  tasks = json.load(f)
18
 
19
+ coro_task_set = set()
20
  for task in tasks:
21
  enable = task.pop("enable")
22
  task_type = task.pop("type")
 
26
  task_cls = BaseTask.by_name(task_type)
27
  task_obj = task_cls(**task)
28
 
29
+ coro_task_set.add(task_obj.start())
30
+ return coro_task_set
31
 
32
+ async def add_tasks_by_task_file(self, tasks_file: str):
33
+ coro_task_set = self.get_coro_task_set_by_task_file(tasks_file)
34
+ self.coro_task_set.update(coro_task_set)
35
+ return len(coro_task_set)
36
 
37
+ async def run(self):
38
  future_tasks = list()
39
+ for task in self.coro_task_set:
40
  task = asyncio.ensure_future(task)
41
  # task = asyncio.create_task(task)
42
  future_tasks.append(task)
 
44
 
45
  await asyncio.wait(future_tasks)
46
 
 
 
 
 
47
 
48
  async def main():
49
  import log