xtn-tools-pro 1.0.0.5.5__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 +34 -21
- {xtn_tools_pro-1.0.0.5.5.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/METADATA +1 -1
- {xtn_tools_pro-1.0.0.5.5.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/RECORD +6 -6
- {xtn_tools_pro-1.0.0.5.5.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/LICENSE +0 -0
- {xtn_tools_pro-1.0.0.5.5.dist-info → xtn_tools_pro-1.0.0.5.6.dist-info}/WHEEL +0 -0
- {xtn_tools_pro-1.0.0.5.5.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,6 +73,10 @@ 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()
|
@@ -83,33 +87,35 @@ class GoFun:
|
|
83
87
|
self.upload_queue = upload_queue
|
84
88
|
self.proxies_dict = proxies_dict
|
85
89
|
|
86
|
-
|
90
|
+
restart_time = int(self.__ini_info["restart_time"])
|
91
|
+
self.__processes_item_info = {
|
87
92
|
"_download_and_upload_task": {
|
88
93
|
"target": self._download_and_upload_task,
|
89
94
|
"name": "_download_and_upload_task",
|
90
|
-
"args": (download_queue, upload_queue, proxies_dict, self.__ini_info, logger),
|
95
|
+
"args": (download_queue, upload_queue, proxies_dict, self.__ini_info, self.logger),
|
91
96
|
"start_time": 0,
|
92
|
-
"restart_time":
|
97
|
+
"restart_time": restart_time,
|
93
98
|
},
|
94
99
|
"_go_task_fun_task": {
|
95
100
|
"target": self._go_task_fun_task,
|
96
101
|
"name": "_go_task_fun_task",
|
97
|
-
"args": (
|
102
|
+
"args": (
|
103
|
+
download_queue, upload_queue, proxies_dict, self.__ini_info, self.__go_task_function, self.logger),
|
98
104
|
"start_time": 0,
|
99
105
|
"restart_time": int(restart_time),
|
100
106
|
},
|
101
107
|
}
|
102
108
|
|
103
|
-
for p_item in
|
109
|
+
for p_item in self.__processes_item_info.values():
|
104
110
|
task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"], args=p_item["args"])
|
105
|
-
|
106
|
-
|
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)
|
107
113
|
task_process.start()
|
108
|
-
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}")
|
109
115
|
|
110
116
|
while True:
|
111
117
|
time.sleep(10)
|
112
|
-
for p_item_info in
|
118
|
+
for p_item_info in self.__processes_item_info.values():
|
113
119
|
task_process = p_item_info["task_process"]
|
114
120
|
task_process_start_time = p_item_info["start_time"]
|
115
121
|
task_process_restart_time = p_item_info.get("restart_time", 0)
|
@@ -118,31 +124,33 @@ class GoFun:
|
|
118
124
|
task_process_name = task_process.name
|
119
125
|
task_process_is_alive = task_process.is_alive()
|
120
126
|
if not task_process_is_alive:
|
121
|
-
logger.critical(f"进程不存在,{task_process_is_alive},{task_process_name},{task_process_pid}")
|
122
|
-
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]
|
123
129
|
task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"],
|
124
130
|
args=p_item["args"])
|
125
131
|
|
126
|
-
|
127
|
-
|
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)
|
128
135
|
task_process.start()
|
129
|
-
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}")
|
130
137
|
else:
|
131
138
|
if not task_process_restart_time:
|
132
139
|
continue
|
133
140
|
if task_process_start_time + task_process_restart_time <= get_time_now_timestamp(is_time_10=True):
|
134
|
-
logger.critical(
|
141
|
+
self.logger.critical(
|
135
142
|
f"进程已超过设置时间,正在强制关闭进程,{task_process_restart_time},{task_process_is_alive},{task_process_name},{task_process_pid}")
|
136
143
|
task_process.terminate()
|
137
144
|
task_process.join() # 等待进程确实结束
|
138
|
-
p_item =
|
145
|
+
p_item = self.__processes_item_info[task_process_name]
|
139
146
|
task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"],
|
140
147
|
args=p_item["args"])
|
141
148
|
|
142
|
-
|
143
|
-
|
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)
|
144
152
|
task_process.start()
|
145
|
-
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}")
|
146
154
|
|
147
155
|
def __get_external_ip(self, logger):
|
148
156
|
"""
|
@@ -402,10 +410,11 @@ class GoFun:
|
|
402
410
|
:return:
|
403
411
|
"""
|
404
412
|
try:
|
405
|
-
task_item =
|
413
|
+
task_item = download_queue.get(block=block, timeout=timeout)
|
406
414
|
return task_item
|
407
415
|
except Exception as e:
|
408
416
|
self.logger.critical(f"get_download_task 获取下载任务 报错 {e}")
|
417
|
+
return False
|
409
418
|
|
410
419
|
def update_upload_task(self, upload_queue, task_item):
|
411
420
|
"""
|
@@ -415,7 +424,11 @@ class GoFun:
|
|
415
424
|
:return:
|
416
425
|
"""
|
417
426
|
try:
|
418
|
-
task_item =
|
427
|
+
task_item = upload_queue.put(task_item)
|
419
428
|
return task_item
|
420
429
|
except Exception as e:
|
421
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
|