| | |
| | | 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() |
| | |
| | | 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") |
| | |
| | | |
| | | @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): |