Administrator
2022-09-16 b7000cbf5e67e90abe53e96a4ea931afbf906e24
l2_code_operate.py
@@ -72,7 +72,9 @@
                print("读取操作队列", data, redis.llen("code_operate_queue"))
                if data is not None:
                    data = json.loads(data)
                    logger_code_operate.info("读取操作队列:{}", data)
                    type, code = data["type"], data["code"]
                    if type == 0:
                        # 是否在固定库
                        if l2_data_manager.is_in_l2_fixed_codes(code):
@@ -126,10 +128,10 @@
                logging.exception(e)
                print("发送操作异常:", str(e))
    def add_operate(self, type, code, client=None, pos=None):
    def add_operate(self, type, code, msg="", client=None, pos=None):
        redis = self.redis_manager_.getRedis()
        print("add_operate", type, code)
        redis.rpush("code_operate_queue", json.dumps({"type": type, "code": code, "client": client, "pos": pos}))
        redis.rpush("code_operate_queue",
                    json.dumps({"type": type, "msg": msg, "code": code, "client": client, "pos": pos}))
    def repaire_operate(self, client, pos, code):
        # 如果本来该位置代码为空则不用修复
@@ -137,9 +139,7 @@
        if code_ == "" or code_ is None:
            return
        logger_code_operate.info("客户端位置代码修复:client-{},pos-{},code-{}", client, pos, code)
        redis = self.redis_manager_.getRedis()
        redis.rpush("code_operate_queue", json.dumps({"type": 2, "client": client, "pos": pos, "code": code}))
        self.add_operate(2, code, "", client, pos)
    # 修复l2的数据错误
    def repaire_l2_data(self, code):
@@ -156,15 +156,15 @@
            redis.rpush("code_operate_queue", json.dumps({"type": 3, "code": code, "client": client_id, "data": data}))
    # 移除监控
    def remove_l2_listen(self, code):
    def remove_l2_listen(self, code, msg):
        # 是否正在监听
        if gpcode_manager.is_listen(code):
            self.add_operate(0, code)
            self.add_operate(0, code, msg=msg)
    # 设置代码操作状态,服务器保存的代码是否与实际设置的代码保持一致
    @classmethod
    def set_operate_code_state(cls, client_id, channel, state):
        cls.getRedis().setex("code-operate_state-{}-{}".format(client_id, channel), tool.get_expire(), state)
        cls.getRedis().setex("code-operate_state-{}-{}".format(client_id, channel), 10, state)
    def get_operate_code_state(self, client_id, channel):
        value = self.getRedis().get("code-operate_state-{}-{}".format(client_id, channel))
@@ -182,11 +182,12 @@
        data = json.loads(result["data"])
        codes = data["data"]
        result_list = {}
        for d in codes:
            result_list[d["index"]]=d["code"]
        if codes is not None:
            for d in codes:
                result_list[d["index"]] = d["code"]
        return result_list
    else:
        raise Exception("获取客户端监听代码出错")
        raise Exception("获取客户端监听代码出错:{}".format(result))
# 矫正客户端代码
@@ -198,11 +199,13 @@
            for index in range(0, 8):
                code = gpcode_manager.get_listen_code_by_pos(client_id, index)
                if code is not None and len(code) > 0 and index_codes.get(index) != code:
                    # 修复代码
                    L2CodeOperate().repaire_operate(client_id, index, code)
                    # 交易时间才修复代码
                    if tool.is_trade_time():
                        L2CodeOperate().repaire_operate(client_id, index, code)
                elif code is None or len(code) == 0 and index_codes.get(index) is not None:
                    # 删除前端代码位
                    L2CodeOperate().add_operate(4, "", client_id, index)
                    # L2CodeOperate().add_operate(4, "", client_id, index)
                    pass
        except Exception as e:
            logger_code_operate.error("client:{} msg:{}".format(client_id, str(e)))