Skip to content

Commit c9188d6

Browse files
killuawangISAAC-XXYYZZ
authored andcommitted
fix(python sdk): fix utilizes cpu high
1 parent 57cdc0c commit c9188d6

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

sdk/python/kucoin_universal_sdk/internal/infra/default_ws_client.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,11 @@ def write_message(self):
194194
def keep_alive(self):
195195
interval = self.token_info.ping_interval / 1000.0
196196
timeout = self.token_info.ping_timeout / 1000.0
197-
check_shutdown_interval = 1
198-
sum = 0
197+
last_ping_time = time.time()
198+
199199
while not self.shutdown.is_set() and not self.close_event.is_set():
200-
if sum >= interval:
201-
sum = 0
200+
current_time = time.time()
201+
if current_time - last_ping_time >= interval:
202202
ping_msg = self.new_ping_message()
203203
try:
204204
self.write(ping_msg, timeout=timeout)
@@ -209,8 +209,9 @@ def keep_alive(self):
209209
except Exception as e:
210210
logging.error(f"Exception in keep_alive: {e}")
211211
self.metric['ping_err'] += 1
212-
time.sleep(check_shutdown_interval)
213-
sum += check_shutdown_interval
212+
last_ping_time = current_time
213+
214+
time.sleep(1)
214215

215216
def on_error(self, ws, error):
216217
logging.error(f"WebSocket error: {error}")
@@ -224,10 +225,10 @@ def on_close(self, ws, close_status_code, close_msg):
224225
def reconnect(self):
225226
def reconnect_loop():
226227
while True:
227-
if self.reconnect_close_event.is_set():
228+
if self.reconnect_close_event.wait(timeout=1):
228229
return
229230

230-
if self.disconnect_event.is_set():
231+
if self.disconnect_event.wait(timeout=1):
231232
if self.shutdown.is_set():
232233
continue
233234

sdk/python/kucoin_universal_sdk/internal/infra/default_ws_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ def __init__(self, client_option: ClientOption, domain: DomainType, private: boo
2929

3030
def recovery(self):
3131
def recovery_loop():
32-
while not self.stop_event.is_set():
33-
event_triggered = self.client.reconnected_event.wait(timeout=1)
32+
while not self.stop_event.wait(timeout=1):
33+
event_triggered = self.client.reconnected_event.is_set()
3434
if self.stop_event.is_set():
3535
return
3636
if event_triggered:

0 commit comments

Comments
 (0)