Administrator
2022-08-25 34491829675033e41715648b1e92f339bf2f35d1
l2_code_operate.py
@@ -1,5 +1,6 @@
# 操作l2的代码
import json
import logging
import os
import queue
import threading
@@ -40,8 +41,10 @@
            result = server.send_msg(client_id, data)
            logger_code_operate.info(
                "setGPCode结束({}):clientid-{}  position-{} code-{}".format(result, client_id, position, gpcode))
            if result.__contains__('OK'):
            jsonData = json.loads(result)
            if jsonData["code"] == 0:
                gpcode_manager.set_listen_code_by_pos(client_id, position, gpcode)
                L2CodeOperate.set_operate_code_state(client_id, position, 1)
        except Exception as e:
            logger_code_operate.error("setGPCode出错:{}", str(e))
@@ -97,19 +100,20 @@
                        if code_ == "" or code_ is None:
                            continue
                        logger_code_operate.info("修复代码一致:{}-{}-{}", client, pos, code)
                        logger_code_operate.info("修复代码一致:{}-{}-{}", client_id, pos, code)
                        L2CodeOperate.setGPCode(client_id, pos, code)
                    # 修复l2的数据错误
                    elif type == 3:
                        data = data["data"]
                        client = data["client"]
                        server.send_msg(client, json.dumps(data))
                        data=data["data"]
                        result = server.send_msg(client, data)
                        print("L2數據修復結果:",result)
                else:
                    time.sleep(1)
            except:
                print("发送操作异常")
            except Exception as e:
                logging.exception(e)
                print("发送操作异常:",str(e))
    def add_operate(self, type, code):
        redis = self.redis_manager_.getRedis()
@@ -117,6 +121,11 @@
        redis.rpush("code_operate_queue", json.dumps({"type": type, "code": code}))
    def repaire_operate(self, client, pos, code):
        # 如果本来该位置代码为空则不用修复
        code_ = gpcode_manager.get_listen_code_by_pos(client, pos)
        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}))
@@ -133,7 +142,7 @@
                    "data": {"index": int(pos), "code": code, "min_price": float(min_price),
                             "max_price": float(max_price)}}
        redis = self.redis_manager_.getRedis()
        redis.rpush("code_operate_queue", json.dumps({"type": 3, "client": client_id, "data": data}))
        redis.rpush("code_operate_queue", json.dumps({"type": 3,"code":code, "client": client_id, "data": data}))
    # 移除监控
    def remove_l2_listen(self, code):
@@ -142,8 +151,9 @@
            self.add_operate(0, code)
    # 设置代码操作状态,服务器保存的代码是否与实际设置的代码保持一致
    def set_operate_code_state(self, client_id, channel, state):
        self.getRedis().setex("code-operate_state-{}-{}".format(client_id, channel), tool.get_expire(), state)
    @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)
    def get_operate_code_state(self, client_id, channel):
        value = self.getRedis().get("code-operate_state-{}-{}".format(client_id, channel))