@@ -68,8 +68,9 @@ def request(self, task):
68
68
def keep_alive_thread (self ):
69
69
while time .time () - self .ssl_sock .create_time < self .config .http1_first_ping_wait :
70
70
if not self .keep_running :
71
- self .close ("exit " )
71
+ self .close ("exit" )
72
72
return
73
+
73
74
time .sleep (3 )
74
75
75
76
if self .config .http1_first_ping_wait and self .processed_tasks == 0 :
@@ -87,7 +88,7 @@ def keep_alive_thread(self):
87
88
88
89
elif self .config .http1_idle_time :
89
90
while self .keep_running :
90
- time_to_sleep = max (self .config .http1_idle_time - (time .time () - self .last_recv_time ), 0.2 )
91
+ time_to_sleep = max (self .config .http1_idle_time - (time .time () - self .last_recv_time ), 3 )
91
92
time .sleep (time_to_sleep )
92
93
93
94
if not self .request_onway and time .time () - self .last_recv_time > self .config .http1_idle_time :
@@ -113,7 +114,6 @@ def work_loop(self):
113
114
self .close ("keep alive" )
114
115
return
115
116
116
- self .last_recv_time = time .time ()
117
117
continue
118
118
119
119
# self.logger.debug("http1 get task")
@@ -127,7 +127,6 @@ def work_loop(self):
127
127
self .request_task (task )
128
128
self .request_onway = False
129
129
self .last_send_time = time_now
130
- self .last_recv_time = time_now
131
130
132
131
life_end_reason = self .is_life_end ()
133
132
if life_end_reason :
@@ -138,7 +137,6 @@ def request_task(self, task):
138
137
timeout = task .timeout
139
138
self .request_onway = True
140
139
start_time = time .time ()
141
- self .last_recv_time = start_time
142
140
143
141
self .record_active ("request" )
144
142
task .set_state ("h1_req" )
@@ -160,10 +158,11 @@ def request_task(self, task):
160
158
sended = self .ssl_sock .send (task .body [start :start + send_size ])
161
159
start += sended
162
160
163
- task .set_state ("h1_req_sended " )
161
+ task .set_state ("h1_req_sent " )
164
162
except Exception as e :
165
- self .logger .warn ("%s h1_request send:%r inactive_time:%d task.timeout:%d" ,
166
- self .ip_str , e , time .time () - self .last_recv_time , task .timeout )
163
+ self .logger .warn ("%s %s h1_request send:%r inactive_time:%d task.timeout:%d" ,
164
+ self .ip_str , self .ssl_sock .getsockname (),
165
+ e , time .time () - self .last_recv_time , task .timeout )
167
166
self .logger .warn ('%s trace:%s' , self .ip_str , self .get_trace ())
168
167
169
168
self .retry_task_cb (task )
@@ -175,6 +174,7 @@ def request_task(self, task):
175
174
response = simple_http_client .Response (self .ssl_sock )
176
175
response .begin (timeout = timeout )
177
176
task .set_state ("response_begin" )
177
+ self .last_recv_time = time .time ()
178
178
except Exception as e :
179
179
self .logger .warn ("%s h1_request recv:%r inactive_time:%d task.timeout:%d" ,
180
180
self .ip_str , e , time .time () - self .last_recv_time , task .timeout )
@@ -201,7 +201,7 @@ def request_task(self, task):
201
201
task .queue .put (response )
202
202
else :
203
203
if self .config .http2_show_debug :
204
- self .logger .debug ("got pong for %s status:%d" , self .ip_str , response .status )
204
+ self .logger .debug ("got res for %s status:%d" , self .ip_str , response .status )
205
205
206
206
try :
207
207
read_target = int (response .content_length )
@@ -290,6 +290,7 @@ def head_request(self):
290
290
self .record_active ("head end" )
291
291
rtt = (time .time () - start_time ) * 1000
292
292
self .update_rtt (rtt )
293
+ self .last_recv_time = time .time ()
293
294
return True
294
295
except Exception as e :
295
296
self .logger .warn ("h1 %s HEAD keep alive request fail:%r" , self .ssl_sock .ip_str , e )
0 commit comments