xtn-tools-pro 1.0.0.4.6__tar.gz → 1.0.0.4.8__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {xtn-tools-pro-1.0.0.4.6/xtn_tools_pro.egg-info → xtn-tools-pro-1.0.0.4.8}/PKG-INFO +1 -1
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/setup.py +1 -1
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/task_pro/go_fun.py +29 -28
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8/xtn_tools_pro.egg-info}/PKG-INFO +1 -1
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/LICENSE +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/README.md +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/setup.cfg +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/__init__.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/db/MongoDB.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/db/MysqlDB.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/db/RedisDB.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/db/__init__.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/proxy/XiaoXiangProxy.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/proxy/__init__.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/proxy/proxy.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/task_pro/__init__.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/tools.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/__init__.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/crypto.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/file_utils.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/helpers.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/log.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/retry.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/sql.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro/utils/time_utils.py +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro.egg-info/SOURCES.txt +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro.egg-info/dependency_links.txt +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro.egg-info/requires.txt +0 -0
- {xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro.egg-info/top_level.txt +0 -0
@@ -73,43 +73,44 @@ class GoFun:
|
|
73
73
|
return
|
74
74
|
|
75
75
|
# 共享任务队列
|
76
|
-
processes_list = []
|
77
76
|
manager = multiprocessing.Manager()
|
78
77
|
download_queue = multiprocessing.Queue()
|
79
78
|
upload_queue = multiprocessing.Queue()
|
80
79
|
proxies_dict = manager.dict()
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
80
|
+
|
81
|
+
processes_list = []
|
82
|
+
processes_item_info = {
|
83
|
+
"_download_and_upload_task": {
|
84
|
+
"target": self._download_and_upload_task,
|
85
|
+
"name": "_download_and_upload_task",
|
86
|
+
"args": (download_queue, upload_queue, proxies_dict, self.__ini_info, logger),
|
87
|
+
},
|
88
|
+
"_go_task_fun_task": {
|
89
|
+
"target": self._go_task_fun_task,
|
90
|
+
"name": "_go_task_fun_task",
|
91
|
+
"args": (download_queue, upload_queue, proxies_dict, self.__ini_info, go_task_function, logger),
|
92
|
+
},
|
93
|
+
}
|
94
|
+
|
95
|
+
for p_item in processes_item_info.values():
|
96
|
+
task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"], args=p_item["args"])
|
97
|
+
processes_list.append(task_process)
|
98
|
+
task_process.start()
|
96
99
|
|
97
100
|
while True:
|
101
|
+
time.sleep(10)
|
98
102
|
for p in processes_list:
|
99
103
|
# 检查子进程是否存活
|
100
|
-
logger.info(f"{p.is_alive()} {p.name} {p.pid} {p}")
|
101
104
|
if not p.is_alive():
|
102
|
-
print(f"
|
105
|
+
print(f"{p.is_alive()} {p.name} {p.pid}")
|
103
106
|
# 进程死掉,重新启动
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
download_task_process.join()
|
112
|
-
|
107
|
+
p.kill()
|
108
|
+
processes_list.remove(p)
|
109
|
+
p_item = processes_item_info[p.name]
|
110
|
+
task_process = multiprocessing.Process(target=p_item["target"], name=p_item["name"],
|
111
|
+
args=p_item["args"])
|
112
|
+
processes_list.append(task_process)
|
113
|
+
task_process.start()
|
113
114
|
|
114
115
|
def __get_external_ip(self, logger):
|
115
116
|
"""
|
@@ -125,7 +126,7 @@ class GoFun:
|
|
125
126
|
except Exception as e:
|
126
127
|
logger.critical(f"获取当前网络ip{e}")
|
127
128
|
|
128
|
-
def _download_and_upload_task(self, download_queue, upload_queue, proxies_dict, ini_info,logger):
|
129
|
+
def _download_and_upload_task(self, download_queue, upload_queue, proxies_dict, ini_info, logger):
|
129
130
|
"""
|
130
131
|
使用两个线程 打开 获取任务、回写任务
|
131
132
|
:param queue:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{xtn-tools-pro-1.0.0.4.6 → xtn-tools-pro-1.0.0.4.8}/xtn_tools_pro.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|