xtn-tools-pro 1.0.0.5.4__py3-none-any.whl → 1.0.0.5.6__py3-none-any.whl
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.
- xtn_tools_pro/task_pro/go_fun.py +36 -19
- {xtn_tools_pro-1.0.0.5.4.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/METADATA +1 -1
- {xtn_tools_pro-1.0.0.5.4.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/RECORD +6 -6
- {xtn_tools_pro-1.0.0.5.4.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/LICENSE +0 -0
- {xtn_tools_pro-1.0.0.5.4.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/WHEEL +0 -0
- {xtn_tools_pro-1.0.0.5.4.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/top_level.txt +0 -0
xtn_tools_pro/task_pro/go_fun.py
CHANGED
@@ -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
|
-
|
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":
|
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": (
|
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
|
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
|
-
|
102
|
-
|
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
|
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 =
|
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
|
-
|
123
|
-
|
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 =
|
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
|
-
|
139
|
-
|
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)
|
@@ -10,7 +10,7 @@ xtn_tools_pro/proxy/XiaoXiangProxy.py,sha256=45SsMZDc-3Ta4THX38vScjaeRBJSp420AJw
|
|
10
10
|
xtn_tools_pro/proxy/__init__.py,sha256=WRwh6s2lruMu5buh0ejo9EK54kWT_VQhCsFGNFAmcyo,418
|
11
11
|
xtn_tools_pro/proxy/proxy.py,sha256=No6E1pFY5yx2F4976pXPrLtq-QEVp79KupzcufjSN58,8703
|
12
12
|
xtn_tools_pro/task_pro/__init__.py,sha256=nK3U47hWwE1H875ieEToH9r-jzXHS-PXk8cDstOvRE8,418
|
13
|
-
xtn_tools_pro/task_pro/go_fun.py,sha256=
|
13
|
+
xtn_tools_pro/task_pro/go_fun.py,sha256=hWEt2uJ9FCvJH7PhVZttS-11A7J6zbRKwX7c5YLYQag,19144
|
14
14
|
xtn_tools_pro/utils/__init__.py,sha256=I1_n_NP23F2lBqlF4EOlnOdLYxM8M4pbn63UhJN1hRE,418
|
15
15
|
xtn_tools_pro/utils/crypto.py,sha256=RZ5AET4udlraACWMeNF-17JiZ2R6Ahb47_j4tjkV7LE,3190
|
16
16
|
xtn_tools_pro/utils/file_utils.py,sha256=VfdIxog4s1UW5NpKkCvQsUs9qHjLoNCnstZbnftkT4w,2046
|
@@ -19,8 +19,8 @@ xtn_tools_pro/utils/log.py,sha256=m0WtTWkkwtrki1ftP8vCDR8bMfK2gcfUGx5J2x2IlLQ,10
|
|
19
19
|
xtn_tools_pro/utils/retry.py,sha256=0wjHsR5DBBKpv4naMfxiky8kprrZes4WURIfFQ4H708,1657
|
20
20
|
xtn_tools_pro/utils/sql.py,sha256=EAKzbkZP7Q09j15Gm6o0_uq0qgQmcCQT6EAawbpp4v0,6263
|
21
21
|
xtn_tools_pro/utils/time_utils.py,sha256=TUtzG61PeVYXhaQd6pBrXAdlz7tBispNIRQRcGhE2No,4859
|
22
|
-
xtn_tools_pro-1.0.0.5.
|
23
|
-
xtn_tools_pro-1.0.0.5.
|
24
|
-
xtn_tools_pro-1.0.0.5.
|
25
|
-
xtn_tools_pro-1.0.0.5.
|
26
|
-
xtn_tools_pro-1.0.0.5.
|
22
|
+
xtn_tools_pro-1.0.0.5.6.dist-info/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
+
xtn_tools_pro-1.0.0.5.6.dist-info/METADATA,sha256=Iv7HgdNOFDNn9OxtFrruOLvz3NkAoMpJXqSkUKZ5yD0,455
|
24
|
+
xtn_tools_pro-1.0.0.5.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
25
|
+
xtn_tools_pro-1.0.0.5.6.dist-info/top_level.txt,sha256=jyB3FLDEr8zE1U7wHczTgIbvUpALhR-ULF7RVEO7O2U,14
|
26
|
+
xtn_tools_pro-1.0.0.5.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|