Administrator
2022-11-03 f03eb72394a3fac097bb3ab1f956a83f99f7bd0e
l2_code_operate.py
@@ -18,6 +18,9 @@
import redis_manager
from log import logger_code_operate
__reset_code_dict = {}
__set_operate_code_state_dict = {}
class L2CodeOperate(object):
    __instance = None
@@ -117,7 +120,7 @@
                        L2CodeOperate.setGPCode(client_id, pos, code)
                    # 修复l2的数据错误
                    elif type == 3:
                        if tool.is_trade_time():
                        if tool.is_set_code_time():
                            client = data["client"]
                            data = data["data"]
                            result = server.send_msg(client, data)
@@ -195,6 +198,30 @@
        return redis.get("operate_queue_read_state") is not None
# 通过l2代码校验代码位
@tool.async_call
def verify_with_l2_data_pos_info(code, client, channel):
    code_ = gpcode_manager.get_listen_code_by_pos(client, channel)
    if code_ != code:
        key = "{}-{}-{}".format(client, channel, code)
        # 间隔2s
        if key not in __reset_code_dict or round(
                time.time() * 1000) - __reset_code_dict[key] > 2000:
            L2CodeOperate.set_operate_code_state(client, channel, 0)
            __reset_code_dict[key] = round(time.time() * 1000)
            if code_ is None:
                code_ = ""
            if tool.is_set_code_time():
                L2CodeOperate.repaire_operate(int(client), int(channel), code_)
    else:
        key = "{}-{}".format(client, channel)
        if key not in __set_operate_code_state_dict or round(
                time.time() * 1000) - __set_operate_code_state_dict[key] > 1000:
            __set_operate_code_state_dict[key] = round(time.time() * 1000)
            L2CodeOperate.set_operate_code_state(client, channel, 1)
# 获取客户端正在监听的代码
def get_listen_codes_from_client(client_id):
@@ -223,7 +250,7 @@
                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:
                    # 交易时间才修复代码
                    if tool.is_trade_time():
                    if tool.is_set_code_time():
                        L2CodeOperate().repaire_operate(client_id, index, code)
                elif code is None or len(code) == 0 and index_codes.get(index) is not None:
                    # 删除前端代码位