Administrator
2023-07-19 7f90b12e1dfb862693f00e486e554bca0d699519
bug修复
1个文件已修改
12 ■■■■■ 已修改文件
trade/huaxin/huaxin_trade_api.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py
@@ -42,6 +42,7 @@
                cls.socket_client_dict[_type] = []
            cls.socket_client_dict[_type].append((rid, sk))
            cls.socket_client_lock_dict[rid] = threading.Lock()
            hx_logger_trade_debug.info(f"add_client:{rid}")
        else:
            cls.socket_client_dict[_type] = (rid, sk)
            cls.socket_client_lock_dict[rid] = threading.Lock()
@@ -55,11 +56,13 @@
                                                                                                                          0] in cls.active_client_dict else 0,
                                     reverse=True)
                hx_logger_trade_debug.info(f"acquire_client client_list数量:{len(client_list)}")
                hx_logger_trade_debug.info(f"acquire_client socket_client_lock_dict数量:{len(cls.socket_client_lock_dict.keys())}")
                hx_logger_trade_debug.info(
                    f"acquire_client socket_client_lock_dict数量:{len(cls.socket_client_lock_dict.keys())}")
                for d in client_list:
                    if d[0] in cls.socket_client_lock_dict:
                        try:
                            if cls.socket_client_lock_dict[d[0]].acquire(blocking=False):
                                hx_logger_trade_debug.info(f"acquire_client success:{d[0]}")
                                return d
                        except threading.TimeoutError:
                            hx_logger_trade_debug.error("acquire_client TimeoutError")
@@ -76,9 +79,16 @@
    @classmethod
    def release_client(cls, rid):
        sucess = False
        if rid in cls.socket_client_lock_dict:
            sucess = True
            # 释放锁
            cls.socket_client_lock_dict[rid].release()
        if sucess:
            hx_logger_trade_debug.info(f"release_client success:{rid}")
        else:
            hx_logger_trade_debug.info(f"release_client fail:{rid}")
    @classmethod
    def del_client(cls, rid):