admin
3 天以前 8bfdc52b40b4456a5a29e4502cce5865be8ef439
huaxin_client/command_manager.py
@@ -20,6 +20,8 @@
CLIENT_TYPE_POSITION_LIST = "position_list"
CLIENT_TYPE_MONEY = "money"
CLIENT_TYPE_DEAL = "deal"
CLIENT_TYPE_ORDER_FOUND_DETAIL = "order_found_detail"
CLIENT_TYPE_CHARGE = "charge"
CLIENT_TYPE_CMD_L2 = "l2_cmd"
@@ -48,6 +50,12 @@
    def OnMoney(self, client_id, request_id, sk):
        pass
    def OnOrderFoundDetail(self, client_id, request_id, sk, data):
        pass
    def OnCharge(self, client_id, request_id, sk, data):
        pass
    # 测试
    def OnTest(self, client_id, request_id, data, sk):
        pass
@@ -72,9 +80,12 @@
    @classmethod
    def init(cls, trade_action_callback: TradeActionCallback,
             queue_strategy_trade_read_for_trade: multiprocessing.Queue):
             queue_strategy_trade_read_for_trade: multiprocessing.Queue,
             queue_strategy_w_trade_for_query: multiprocessing.Queue
             ):
        cls.action_callback = trade_action_callback
        cls.queue_strategy_w_trade_r = queue_strategy_trade_read_for_trade
        cls.queue_strategy_w_trade_r_for_query = queue_strategy_w_trade_for_query
    @classmethod
    def process_command(cls, _type, client_id, result_json, sk=None):
@@ -99,6 +110,11 @@
                cls.action_callback.OnDelegateList(client_id, request_id, sk, can_cancel)
            elif _type == CLIENT_TYPE_POSITION_LIST:
                cls.action_callback.OnPositionList(client_id, request_id, sk)
            elif _type == CLIENT_TYPE_ORDER_FOUND_DETAIL:
                cls.action_callback.OnOrderFoundDetail(client_id, request_id, sk, data)
            elif _type == CLIENT_TYPE_CHARGE:
                cls.action_callback.OnCharge(client_id, request_id, sk, data)
            elif _type == "test":
                cls.action_callback.OnTest(client_id, request_id, data, sk)
        except Exception as e:
@@ -119,7 +135,6 @@
                        _type = val["type"]
                        if _type != "test":
                            async_log_util.info(logger_local_huaxin_contact_debug, f"接受到信息: {val}")
                            # TODO 测试
                            logger_info.info(f"接受到信息: {val}")
                        cls.process_command(_type, None, val)
                except Exception as e:
@@ -129,13 +144,14 @@
            async_log_util.exception(logger_local_huaxin_trade_debug, e)
    # 维护连接数的稳定
    def run(self, blocking=True):
        if blocking:
            self.run_process_command(self.queue_strategy_w_trade_r)
        else:
            # 接受命令
            t1 = threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r), daemon=True)
            t1.start()
    def run(self):
        # 接受命令
        t1 = threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r), daemon=True)
        t1.start()
        t1 = threading.Thread(target=lambda: self.run_process_command(self.queue_strategy_w_trade_r_for_query),
                              daemon=True)
        t1.start()
# L2指令管理