Skip to content

Commit 8d69943

Browse files
committed
release 5.1.1 fix issue and improve performance.
1 parent 634ffe3 commit 8d69943

File tree

7 files changed

+32
-12
lines changed

7 files changed

+32
-12
lines changed

README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@
2525

2626

2727
### 最新公告:
28-
2023-03-28
29-
* 新版 5.1.0,内置ChatGPT
28+
2023-03-29
29+
* 新版 5.1.1, 提升速度、稳定性
30+
* 5.1.0,内置ChatGPT
3031
* 原来是4.x.x 的老版本,需要重新下载新版安装,不能应用内升级。
3132

3233

code/default/lib/noarch/front_base/config.py

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def set_default(self):
2020
self.set_var("dispather_max_workers", 60)
2121
self.set_var("dispather_score_factor", 1)
2222
self.set_var("dispather_max_idle_workers", 30)
23+
self.set_var("dispather_worker_max_continue_fail", 2)
2324

2425
self.set_var("max_task_num", 100)
2526

code/default/lib/noarch/front_base/http_common.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ def __init__(self, logger, ip_manager, config, ssl_sock, close_cb, retry_task_cb
192192
self.accept_task = True
193193
self.keep_running = True
194194
self.processed_tasks = 0
195+
self.continue_fail_tasks = 0
195196
self.speed_history = []
196197
self.last_recv_time = self.ssl_sock.create_time
197198
self.last_send_time = self.ssl_sock.create_time
@@ -249,7 +250,12 @@ def get_host(self, task_host):
249250
return self.ssl_sock.host
250251

251252
def is_life_end(self):
252-
if time.time() > self.life_end_time:
253+
now = time.time()
254+
if now > self.life_end_time:
255+
return True
256+
elif now - self.last_recv_time > 230:
257+
return True
258+
elif self.continue_fail_tasks > self.config.dispather_worker_max_continue_fail:
253259
return True
254260
else:
255261
return False

code/default/lib/noarch/front_base/http_dispatcher.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,19 @@ def get_worker(self, nowait=False):
170170
while self.running:
171171
best_score = 99999999
172172
best_worker = None
173+
good_worker = 0
173174
idle_num = 0
174175
now = time.time()
175176
for worker in self.workers:
176-
if not worker.accept_task or worker.is_life_end():
177+
if worker.is_life_end():
177178
# self.logger.debug("not accept")
178179
continue
179180

181+
good_worker += 1
182+
183+
if not worker.accept_task:
184+
continue
185+
180186
if worker.version == "1.1":
181187
idle_num += 1
182188
else:
@@ -189,7 +195,7 @@ def get_worker(self, nowait=False):
189195
best_score = score
190196
best_worker = worker
191197

192-
if len(self.workers) < self.config.dispather_max_workers and \
198+
if good_worker < self.config.dispather_max_workers and \
193199
(best_worker is None or
194200
idle_num < self.config.dispather_min_idle_workers or
195201
len(self.workers) < self.config.dispather_min_workers or
@@ -268,11 +274,15 @@ def request(self, method, host, path, headers, body, url=b"", timeout=60):
268274
if response and response.status == 200:
269275
self.success_num += 1
270276
self.continue_fail_num = 0
277+
task.worker.continue_fail_tasks = 0
271278
else:
272279
self.logger.warn("task %s %s %s timeout", method, host, path)
273280
self.fail_num += 1
274281
self.continue_fail_num += 1
275282
self.last_fail_time = time.time()
283+
task.worker.continue_fail_tasks += 1
284+
if task.worker.continue_fail_tasks > self.config.dispather_worker_max_continue_fail:
285+
self.trigger_create_worker_cv.notify()
276286

277287
task.set_state("get_response")
278288
return response

code/default/smart_router/local/pipe_socks.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,12 @@ def add_socks(self, s1, s2):
6060
with self.sock_notify:
6161
s1.pair_sock = s2
6262
s2.pair_sock = s1
63-
self.select2.register(s1, selectors.EVENT_READ)
64-
self.select2.register(s2, selectors.EVENT_READ)
65-
self.read_set.add(s1)
66-
self.read_set.add(s2)
63+
# self.select2.register(s1, selectors.EVENT_READ)
64+
# self.select2.register(s2, selectors.EVENT_READ)
65+
# self.read_set.add(s1)
66+
# self.read_set.add(s2)
67+
self.try_add("READ", s1)
68+
self.try_add("READ", s2)
6769

6870
self.sock_notify.notify()
6971

code/default/version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.1.0
1+
5.1.1

code/default/x_tunnel/local/cloudflare_front/config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def __init__(self, fn):
1515
self.set_var("dispather_work_min_idle_time", 0)
1616
self.set_var("dispather_work_max_score", 20000)
1717
self.set_var("dispather_min_workers", 1)
18-
self.set_var("dispather_max_workers", 3)
18+
self.set_var("dispather_max_workers", 8)
1919
self.set_var("dispather_score_factor", 1)
2020

2121
# http 2 worker
@@ -25,7 +25,7 @@ def __init__(self, fn):
2525
self.set_var("ssl_first_use_timeout", 5)
2626
self.set_var("connection_pool_min", 0)
2727
self.set_var("https_new_connect_num", 0)
28-
self.set_var("connect_create_interval", 3)
28+
self.set_var("connect_create_interval", 2)
2929

3030
# check_ip
3131
self.set_var("check_ip_subdomain", "scan1")

0 commit comments

Comments
 (0)