xtn-tools-pro 1.0.0.5.4__tar.gz → 1.0.0.5.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. {xtn-tools-pro-1.0.0.5.4/xtn_tools_pro.egg-info → xtn-tools-pro-1.0.0.5.6}/PKG-INFO +1 -1
  2. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/setup.py +1 -1
  3. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/task_pro/go_fun.py +36 -19
  4. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6/xtn_tools_pro.egg-info}/PKG-INFO +1 -1
  5. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/LICENSE +0 -0
  6. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/README.md +0 -0
  7. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/setup.cfg +0 -0
  8. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/__init__.py +0 -0
  9. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/db/MongoDB.py +0 -0
  10. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/db/MysqlDB.py +0 -0
  11. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/db/RedisDB.py +0 -0
  12. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/db/__init__.py +0 -0
  13. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/proxy/XiaoXiangProxy.py +0 -0
  14. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/proxy/__init__.py +0 -0
  15. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/proxy/proxy.py +0 -0
  16. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/task_pro/__init__.py +0 -0
  17. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/tools.py +0 -0
  18. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/__init__.py +0 -0
  19. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/crypto.py +0 -0
  20. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/file_utils.py +0 -0
  21. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/helpers.py +0 -0
  22. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/log.py +0 -0
  23. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/retry.py +0 -0
  24. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/sql.py +0 -0
  25. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro/utils/time_utils.py +0 -0
  26. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro.egg-info/SOURCES.txt +0 -0
  27. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro.egg-info/dependency_links.txt +0 -0
  28. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro.egg-info/requires.txt +0 -0
  29. {xtn-tools-pro-1.0.0.5.4 → xtn-tools-pro-1.0.0.5.6}/xtn_tools_pro.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtn-tools-pro
3
- Version: 1.0.0.5.4
3
+ Version: 1.0.0.5.6
4
4
  Summary: xtn 开发工具
5
5
  Author: xtn
6
6
  Author-email: czw011122@gmail.com
@@ -15,7 +15,7 @@ with open("README.md", "r") as f:
15
15
 
16
16
  setuptools.setup(
17
17
  name="xtn-tools-pro", # 模块名称
18
- version="1.0.0.5.4", # 版本
18
+ version="1.0.0.5.6", # 版本
19
19
  author="xtn", # 作者
20
20
  author_email="czw011122@gmail.com", # 作者邮箱
21
21
  description="xtn 开发工具", # 模块简介
@@ -73,39 +73,49 @@ class GoFun:
73
73
  if not go_task_function:
74
74
  return
75
75
 
76
+ self.__go_task_function = go_task_function
77
+ self.__create_process()
78
+
79
+ def __create_process(self):
76
80
  # 共享任务队列
77
81
  manager = multiprocessing.Manager()
78
82
  download_queue = multiprocessing.Queue()
79
83
  upload_queue = multiprocessing.Queue()
80
84
  proxies_dict = manager.dict()
81
85
 
82
- processes_item_info = {
86
+ self.download_queue = download_queue
87
+ self.upload_queue = upload_queue
88
+ self.proxies_dict = proxies_dict
89
+
90
+ restart_time = int(self.__ini_info["restart_time"])
91
+ self.__processes_item_info = {
83
92
  "_download_and_upload_task": {
84
93
  "target": self._download_and_upload_task,
85
94
  "name": "_download_and_upload_task",
86
- "args": (download_queue, upload_queue, proxies_dict, self.__ini_info, logger),
95
+ "args": (download_queue, upload_queue, proxies_dict, self.__ini_info, self.logger),
87
96
  "start_time": 0,
88
- "restart_time": int(restart_time),
97
+ "restart_time": restart_time,
89
98
  },
90
99
  "_go_task_fun_task": {
91
100
  "target": self._go_task_fun_task,
92
101
  "name": "_go_task_fun_task",
93
- "args": (download_queue, upload_queue, proxies_dict, self.__ini_info, go_task_function, logger),
102
+ "args": (
103
+ download_queue, upload_queue, proxies_dict, self.__ini_info, self.__go_task_function, self.logger),
94
104
  "start_time": 0,
95
105
  "restart_time": int(restart_time),
96
106
  },
97
107
  }
98
108
 
99
- for p_item in processes_item_info.values():
109
+ for p_item in self.__processes_item_info.values():
100
110
  task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"], args=p_item["args"])
101
- processes_item_info[p_item["name"]]["task_process"] = task_process
102
- processes_item_info[p_item["name"]]["start_time"] = get_time_now_timestamp(is_time_10=True)
111
+ self.__processes_item_info[p_item["name"]]["task_process"] = task_process
112
+ self.__processes_item_info[p_item["name"]]["start_time"] = get_time_now_timestamp(is_time_10=True)
103
113
  task_process.start()
104
- logger.warning(f"进程已启动,{task_process.is_alive()},{task_process.name},{task_process.pid}")
114
+ self.logger.warning(f"进程已启动,{task_process.is_alive()},{task_process.name},{task_process.pid}")
105
115
 
106
116
  while True:
107
117
  time.sleep(10)
108
- for p_item_info in processes_item_info.values():
118
+ for p_item_info in self.__processes_item_info.values():
109
119
  task_process = p_item_info["task_process"]
110
120
  task_process_start_time = p_item_info["start_time"]
111
121
  task_process_restart_time = p_item_info.get("restart_time", 0)
@@ -114,31 +124,33 @@ class GoFun:
114
124
  task_process_name = task_process.name
115
125
  task_process_is_alive = task_process.is_alive()
116
126
  if not task_process_is_alive:
117
- logger.critical(f"进程不存在,{task_process_is_alive},{task_process_name},{task_process_pid}")
118
- p_item = processes_item_info[task_process_name]
127
+ self.logger.critical(f"进程不存在,{task_process_is_alive},{task_process_name},{task_process_pid}")
128
+ p_item = self.__processes_item_info[task_process_name]
119
129
  task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"],
120
130
  args=p_item["args"])
121
131
 
122
- processes_item_info[task_process_name]["task_process"] = task_process
123
- processes_item_info[task_process_name]["start_time"] = get_time_now_timestamp(is_time_10=True)
132
+ self.__processes_item_info[task_process_name]["task_process"] = task_process
133
+ self.__processes_item_info[task_process_name]["start_time"] = get_time_now_timestamp(
134
+ is_time_10=True)
124
135
  task_process.start()
125
- logger.warning(f"进程已重启,{task_process.is_alive()},{task_process.name},{task_process.pid}")
136
+ self.logger.warning(f"进程已重启,{task_process.is_alive()},{task_process.name},{task_process.pid}")
126
137
  else:
127
138
  if not task_process_restart_time:
128
139
  continue
129
140
  if task_process_start_time + task_process_restart_time <= get_time_now_timestamp(is_time_10=True):
130
- logger.critical(
141
+ self.logger.critical(
131
142
  f"进程已超过设置时间,正在强制关闭进程,{task_process_restart_time},{task_process_is_alive},{task_process_name},{task_process_pid}")
132
143
  task_process.terminate()
133
144
  task_process.join() # 等待进程确实结束
134
- p_item = processes_item_info[task_process_name]
145
+ p_item = self.__processes_item_info[task_process_name]
135
146
  task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"],
136
147
  args=p_item["args"])
137
148
 
138
- processes_item_info[task_process_name]["task_process"] = task_process
139
- processes_item_info[task_process_name]["start_time"] = get_time_now_timestamp(is_time_10=True)
149
+ self.__processes_item_info[task_process_name]["task_process"] = task_process
150
+ self.__processes_item_info[task_process_name]["start_time"] = get_time_now_timestamp(
151
+ is_time_10=True)
140
152
  task_process.start()
141
- logger.warning(f"进程已重启,{task_process.is_alive()},{task_process.name},{task_process.pid}")
153
+ self.logger.warning(f"进程已重启,{task_process.is_alive()},{task_process.name},{task_process.pid}")
142
154
 
143
155
  def __get_external_ip(self, logger):
144
156
  """
@@ -402,6 +414,7 @@ class GoFun:
402
414
  return task_item
403
415
  except Exception as e:
404
416
  self.logger.critical(f"get_download_task 获取下载任务 报错 {e}")
417
+ return False
405
418
 
406
419
  def update_upload_task(self, upload_queue, task_item):
407
420
  """
@@ -415,3 +428,7 @@ class GoFun:
415
428
  return task_item
416
429
  except Exception as e:
417
430
  self.logger.critical(f"update_upload_task 更新任务 报错 {e}")
431
+ return False
432
+
433
+ def reboot_process(self):
434
+ print(self.__processes_item_info)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtn-tools-pro
3
- Version: 1.0.0.5.4
3
+ Version: 1.0.0.5.6
4
4
  Summary: xtn 开发工具
5
5
  Author: xtn
6
6
  Author-email: czw011122@gmail.com