From c057275036cd3e28f2de146e5993c6f97016ffdb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 22 八月 2023 17:39:20 +0800 Subject: [PATCH] bug修改 --- socket_manager.py | 32 ++++++++++++++++++++++++++++++-- 1 files changed, 30 insertions(+), 2 deletions(-) diff --git a/socket_manager.py b/socket_manager.py index 0971129..9c64bd9 100644 --- a/socket_manager.py +++ b/socket_manager.py @@ -1,6 +1,8 @@ import threading import time +from utils import tool + class ClientSocketManager: # 瀹㈡埛绔被鍨� @@ -27,7 +29,8 @@ if _type == cls.CLIENT_TYPE_TRADE: if _type in cls.socket_client_dict: # 鏍规嵁鎺掑簭娲昏穬鏃堕棿鎺掑簭 - client_list = sorted(cls.socket_client_dict[_type], key=lambda x: cls.active_client_dict.get(x[0]) if x[0] in cls.active_client_dict else 0, + client_list = sorted(cls.socket_client_dict[_type], key=lambda x: cls.active_client_dict.get(x[0]) if x[ + 0] in cls.active_client_dict else 0, reverse=True) for d in client_list: if d[0] in cls.socket_client_lock_dict: @@ -64,11 +67,19 @@ for d in cls.socket_client_dict[t]: if d[0] == rid: cls.socket_client_dict[t].remove(d) + try: + d[1].close() + except: + pass break elif type(cls.socket_client_dict[t]) == tuple: if cls.socket_client_dict[t][0] == rid: cls.socket_client_dict.pop(t) + try: + t[1].close() + except: + pass break # 蹇冭烦淇℃伅 @@ -82,4 +93,21 @@ for k in cls.active_client_dict.keys(): if time.time() - cls.active_client_dict[k] > 20: # 蹇冭烦鏃堕棿闂撮殧20s浠ヤ笂瑙嗕负鏃犳晥 - cls.del_client(k) \ No newline at end of file + cls.del_client(k) + + @classmethod + def list_client(cls): + _type = cls.CLIENT_TYPE_TRADE + client_list = sorted(cls.socket_client_dict[_type], + key=lambda x: cls.active_client_dict.get(x[0]) if x[0] in cls.active_client_dict else 0, + reverse=True) + fdata = [] + for client in client_list: + active_time = cls.active_client_dict.get(client[0]) + if active_time is None: + active_time = 0 + active_time = tool.to_time_str(int(active_time)) + fdata.append( + (client[0], cls.socket_client_lock_dict[client[0]].locked(),active_time)) + return fdata + -- Gitblit v1.8.0