From c20c3c10635ce78db4a86ce9c0bb1d02e90f525d Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 08 八月 2023 17:40:42 +0800
Subject: [PATCH] 单例+缓存优化

---
 l2/l2_data_util.py |   30 +++++++++++++-----------------
 1 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/l2/l2_data_util.py b/l2/l2_data_util.py
index 081a585..29b8fe4 100644
--- a/l2/l2_data_util.py
+++ b/l2/l2_data_util.py
@@ -15,7 +15,7 @@
 from code_attribute import gpcode_manager
 from db.redis_manager import RedisUtils
 from l2 import l2_data_log, l2_data_source_util
-from log_module import log
+from log_module import log, log_export
 from db import redis_manager
 from utils import tool
 
@@ -34,12 +34,11 @@
 
 
 def load_l2_data(code, load_latest=True, force=False):
-    redis = _redisManager.getRedis()
     # 鍔犺浇鏈�杩戠殑l2鏁版嵁
-    if load_latest :
+    if load_latest:
         if local_latest_datas.get(code) is None or force:
             # 鑾峰彇鏈�杩戠殑鏁版嵁
-            _data = RedisUtils.get(redis,"l2-data-latest-{}".format(code))
+            _data = RedisUtils.get(_redisManager.getRedis(), "l2-data-latest-{}".format(code))
             if _data is not None:
                 if code in local_latest_datas:
                     local_latest_datas[code] = json.loads(_data)
@@ -48,7 +47,7 @@
         # 鑾峰彇浠婃棩鐨勬暟鎹�
 
     if local_today_datas.get(code) is None or force:
-        datas = log.load_l2_from_log()
+        datas = log_export.load_l2_from_log()
         datas = datas.get(code)
         if datas is None:
             datas = []
@@ -118,29 +117,29 @@
     redis_instance = _redisManager.getRedis()
 
     try:
-        if redis_instance.setnx("l2-save-{}".format(code), "1") > 0:
-
+        if RedisUtils.setnx(redis_instance, "l2-save-{}".format(code), "1", auto_free=False) > 0:
             # 璁$畻淇濈暀鐨勬椂闂�
             expire = tool.get_expire()
             i = 0
             for _data in datas:
                 i += 1
                 key = "l2-" + _data["key"]
-                value = RedisUtils.get(redis_instance, key)
+                value = RedisUtils.get(redis_instance, key, auto_free=False)
                 if value is None:
                     # 鏂板
                     try:
                         value = {"index": _data["index"], "re": _data["re"]}
-                        RedisUtils.setex(redis_instance,key, expire, json.dumps(value))
+                        RedisUtils.setex(redis_instance, key, expire, json.dumps(value), auto_free=False)
                     except:
                         logging.error("鏇存L2鏁版嵁鍑洪敊锛歿} key:{}".format(code, key))
                 else:
                     json_value = json.loads(value)
                     if json_value["re"] != _data["re"]:
                         json_value["re"] = _data["re"]
-                        RedisUtils.setex(redis_instance,key, expire, json.dumps(json_value))
+                        RedisUtils.setex(redis_instance, key, expire, json.dumps(json_value), auto_free=False)
     finally:
-        RedisUtils.delete(redis_instance, "l2-save-{}".format(code))
+        RedisUtils.delete(redis_instance, "l2-save-{}".format(code), auto_free=False)
+        RedisUtils.realse(redis_instance)
 
     print("淇濆瓨鏂版暟鎹敤鏃讹細", msg, "鑰楁椂锛歿}".format(round(time.time() * 1000) - start_time))
     return datas
@@ -148,13 +147,12 @@
 
 # 淇濆瓨l2鏁版嵁
 def save_l2_data(code, datas, add_datas):
-    redis = _redisManager.getRedis()
     # 鍙湁鏈夋柊鏇炬暟鎹墠闇�瑕佷繚瀛�
     if len(add_datas) > 0:
         # 淇濆瓨鏈�杩戠殑鏁版嵁
         __start_time = round(time.time() * 1000)
         if datas:
-            RedisUtils.setex(redis,"l2-data-latest-{}".format(code), tool.get_expire(), json.dumps(datas))
+            RedisUtils.setex(_redisManager.getRedis(), "l2-data-latest-{}".format(code), tool.get_expire(), json.dumps(datas))
             l2_data_log.l2_time(code, round(time.time() * 1000) - __start_time, "淇濆瓨鏈�杩憀2鏁版嵁鐢ㄦ椂")
             # 璁剧疆杩涘唴瀛�
             local_latest_datas[code] = datas
@@ -169,9 +167,8 @@
 
 # 璁剧疆鏈�鏂扮殑l2鏁版嵁閲囬泦鐨勬暟閲�
 def set_l2_data_latest_count(code, count):
-    redis = _redisManager.getRedis()
     key = "latest-l2-count-{}".format(code)
-    RedisUtils.setex( redis,key, 2, count)
+    RedisUtils.setex(_redisManager.getRedis(), key, 2, count)
     pass
 
 
@@ -179,10 +176,9 @@
 def get_l2_data_latest_count(code):
     if code is None or len(code) < 1:
         return 0
-    redis = _redisManager.getRedis()
     key = "latest-l2-count-{}".format(code)
 
-    result = RedisUtils.get(redis, key)
+    result = RedisUtils.get(_redisManager.getRedis(), key)
     if result is None:
         return 0
     else:

--
Gitblit v1.8.0