Administrator
2023-07-25 a61a6bcd664224cf71c465c4c4c6a4a5bf8a1d47
bug修复
1个文件已修改
19 ■■■■■ 已修改文件
trade/huaxin/huaxin_trade_api.py 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py
@@ -85,17 +85,17 @@
        return None
    @classmethod
    def release_client(cls, rid):
    def release_client(cls, client_id):
        sucess = False
        if rid in cls.socket_client_lock_dict:
        if client_id in cls.socket_client_lock_dict:
            sucess = True
            # 释放锁
            if cls.socket_client_lock_dict[rid].locked():
                cls.socket_client_lock_dict[rid].release()
            if cls.socket_client_lock_dict[client_id].locked():
                cls.socket_client_lock_dict[client_id].release()
        if sucess:
            hx_logger_trade_debug.info(f"release_client success:{rid}")
            hx_logger_trade_debug.info(f"release_client success:{client_id}")
        else:
            hx_logger_trade_debug.info(f"release_client fail:{rid}")
            hx_logger_trade_debug.info(f"release_client fail:{client_id}")
    @classmethod
    def del_client(cls, rid):
@@ -189,17 +189,20 @@
                    result = __request_response_dict.pop(request_id)
                    return result
                if time.time() - start_time > timeout:
                    # 读取内容超时才会释放
                    ClientSocketManager.release_client(client[0])
                    raise Exception(f"读取内容超时: request_id={request_id}")
        finally:
            ClientSocketManager.release_client(client[0])
            pass
    return None
def set_response(client_id, request_id, response):
    if client_id and request_id:
        # 主动触发
        ClientSocketManager.release_client(client_id)
        __request_response_dict[request_id] = response
        ClientSocketManager.release_client(client_id)
    else:
        # 被动触发
        pass