From fb47d36048e94b9a506d5c153e3dd19a01e37df1 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 30 十月 2023 16:30:27 +0800
Subject: [PATCH] bug修复

---
 code_attribute/code_volumn_manager.py |   81 ++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 29 deletions(-)

diff --git a/code_attribute/code_volumn_manager.py b/code_attribute/code_volumn_manager.py
index 737c9a4..a30bf54 100644
--- a/code_attribute/code_volumn_manager.py
+++ b/code_attribute/code_volumn_manager.py
@@ -7,11 +7,13 @@
 # yesterday 鏄ㄥぉ鐨勯噺
 import json
 
-from db.redis_manager import RedisUtils
+from db.redis_manager_delegate import RedisUtils
+from log_module import async_log_util
 from utils import global_util, tool
-from db import redis_manager
+from db import redis_manager_delegate as redis_manager
 from log_module.log import logger_day_volumn
 
+__db = 0
 __redis_manager = redis_manager.RedisManager(0)
 
 
@@ -20,8 +22,12 @@
     redis = __redis_manager.getRedis()
     global_util.max60_volumn[code] = (max60, max60_day)
     global_util.yesterday_volumn[code] = yesterday
-    RedisUtils.setex(redis, "volumn_max60-{}".format(code), tool.get_expire(), json.dumps((max60, max60_day)))
-    RedisUtils.setex(redis, "volumn_yes-{}".format(code), tool.get_expire(), yesterday)
+    try:
+        RedisUtils.setex_async(0, "volumn_max60-{}".format(code), tool.get_expire(), json.dumps((max60, max60_day)),
+                               auto_free=False)
+        RedisUtils.setex_async(0, "volumn_yes-{}".format(code), tool.get_expire(), yesterday, auto_free=False)
+    finally:
+        RedisUtils.realse(redis)
 
 
 # 鑾峰彇鍘嗗彶閲�
@@ -29,13 +35,16 @@
     max60 = global_util.max60_volumn.get(code)
     yesterday = global_util.yesterday_volumn.get(code)
     redis = __redis_manager.getRedis()
-    if max60 is None:
-        max60 = RedisUtils.get(redis, "volumn_max60-{}".format(code))
-        if max60:
-            max60 = json.loads(max60)
-    if yesterday is None:
-        yesterday = RedisUtils.get(redis, "volumn_yes-{}".format(code))
-    return max60, yesterday
+    try:
+        if max60 is None:
+            max60 = RedisUtils.get(redis, "volumn_max60-{}".format(code), auto_free=False)
+            if max60:
+                max60 = json.loads(max60)
+        if yesterday is None:
+            yesterday = RedisUtils.get(redis, "volumn_yes-{}".format(code), auto_free=False)
+        return max60, yesterday
+    finally:
+        RedisUtils.realse(redis)
 
 
 __today_volumn_cache = {}
@@ -45,22 +54,33 @@
 
 # 璁剧疆浠婃棩閲�
 def set_today_volumn(code, volumn):
-    logger_day_volumn.info("code:{} volumn:{}".format(code, volumn))
+    async_log_util.info(logger_day_volumn, "code:{} volumn:{}".format(code, volumn))
     global_util.today_volumn[code] = volumn
     # 鏈�1000鎵嬬殑鍙樺寲鎵嶄繚瀛�
     if code in __today_volumn_cache and volumn - __today_volumn_cache[code] < 100000:
         return
     __today_volumn_cache[code] = volumn
-    redis = __redis_manager.getRedis()
-    RedisUtils.setex(redis, "volumn_today-{}".format(code), tool.get_expire(), volumn)
+    RedisUtils.setex(__redis_manager.getRedis(), "volumn_today-{}".format(code), tool.get_expire(), volumn)
+
+
+# datas:[(code, volumn)]
+def set_today_volumns(datas):
+    for d in datas:
+        code, volumn = d
+        async_log_util.info(logger_day_volumn, "code:{} volumn:{}".format(code, volumn))
+        global_util.today_volumn[code] = volumn
+        # 鏈�1000鎵嬬殑鍙樺寲鎵嶄繚瀛�
+        if code in __today_volumn_cache and volumn - __today_volumn_cache[code] < 100000:
+            continue
+        __today_volumn_cache[code] = volumn
+        RedisUtils.setex_async(__db, "volumn_today-{}".format(code), tool.get_expire(), volumn)
 
 
 # 鑾峰彇浠婃棩閲�
 def get_today_volumn(code):
     _volumn = global_util.today_volumn.get(code)
     if _volumn is None:
-        redis = __redis_manager.getRedis()
-        _volumn = RedisUtils.get(redis, "volumn_today-{}".format(code))
+        _volumn = RedisUtils.get(__redis_manager.getRedis(), "volumn_today-{}".format(code))
     return _volumn
 
 
@@ -101,19 +121,22 @@
 # 灏嗛噺浠庢暟鎹簱鍔犲叆鍐呭瓨
 def load():
     redis = __redis_manager.getRedis()
-    keys = RedisUtils.keys(redis, "volumn_max60-*")
-    if keys is not None:
-        for k in keys:
-            code = k.split("-")[1]
-            max60_volumn = RedisUtils.get(redis, k)
-            if max60_volumn:
-                max60_volumn = json.loads(max60_volumn)
-            global_util.max60_volumn[code] = max60_volumn
-    keys = RedisUtils.keys(redis, "volumn_yes-*")
-    if keys is not None:
-        for k in keys:
-            code = k.split("-")[1]
-            global_util.yesterday_volumn[code] = RedisUtils.get(redis, k)
+    try:
+        keys = RedisUtils.keys(redis, "volumn_max60-*", auto_free=False)
+        if keys is not None:
+            for k in keys:
+                code = k.split("-")[1]
+                max60_volumn = RedisUtils.get(redis, k, auto_free=False)
+                if max60_volumn:
+                    max60_volumn = json.loads(max60_volumn)
+                global_util.max60_volumn[code] = max60_volumn
+        keys = RedisUtils.keys(redis, "volumn_yes-*", auto_free=False)
+        if keys is not None:
+            for k in keys:
+                code = k.split("-")[1]
+                global_util.yesterday_volumn[code] = RedisUtils.get(redis, k, auto_free=False)
+    finally:
+        RedisUtils.realse(redis)
 
 
 if __name__ == "__main__":

--
Gitblit v1.8.0