From f889cad52174b5bb1dc1ca6fecac7e71d59e905d Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 02 八月 2023 14:30:30 +0800
Subject: [PATCH] redis缓存加入内存缓存

---
 third_data/kpl_data_manager.py |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/third_data/kpl_data_manager.py b/third_data/kpl_data_manager.py
index 5b06f51..ca7df2f 100644
--- a/third_data/kpl_data_manager.py
+++ b/third_data/kpl_data_manager.py
@@ -1,5 +1,6 @@
 import json
 import os
+import time
 
 import constant
 from utils import tool
@@ -157,7 +158,6 @@
             wheres.append(f"hb.`_hot_block_name` != '{b}'")
         wheres = " and ".join(wheres)
         sql = f"SELECT GROUP_CONCAT(_hot_block_name) FROM (SELECT hb.`_hot_block_name`,hb.`_day` FROM `kpl_limit_up_record` hb WHERE hb.`_code`='{code}' AND {wheres} ORDER BY hb.`_day` DESC LIMIT 2) a  GROUP BY a._day ORDER BY a._day DESC LIMIT 1"
-        print(sql)
         mysqldb = mysql_data.Mysqldb()
         return mysqldb.select_one(sql)
 
@@ -186,14 +186,17 @@
 
 class KPLDataManager:
     __latest_datas = {}
+    kpl_data_update_info = {}
 
-    def __save_in_file(self, key, datas):
+    @classmethod
+    def __save_in_file(cls, key, datas):
         name = f"{tool.get_now_date_str()}_{key}.log"
         path = f"{constant.CACHE_PATH}/{name}"
         with open(path, 'w') as f:
             f.write(json.dumps(datas))
 
-    def __get_from_file(self, key, day=tool.get_now_date_str()):
+    @classmethod
+    def __get_from_file(cls, key, day=tool.get_now_date_str()):
         name = f"{day}_{key}.log"
         path = f"{constant.CACHE_PATH}/{name}"
         if not os.path.exists(path):
@@ -204,7 +207,8 @@
                 return json.loads(lines[0])
         return None
 
-    def get_from_file(self, type, day):
+    @classmethod
+    def get_from_file(cls, type, day):
         name = f"{day}_{type.value}.log"
         path = f"{constant.CACHE_PATH}/{name}"
         if not os.path.exists(path):
@@ -215,8 +219,9 @@
                 return json.loads(lines[0])
         return None
 
+    @classmethod
     # 鑾峰彇鏈�杩戝嚑澶╃殑鏁版嵁锛屾牴鎹棩鏈熷�掑簭杩斿洖
-    def get_latest_from_file(self, type, count):
+    def get_latest_from_file(cls, type, count):
         files = os.listdir(constant.CACHE_PATH)
         file_name_list = []
         for f in files:
@@ -237,17 +242,20 @@
 
         return fresults
 
-    def save_data(self, type, datas):
-        self.__latest_datas[type] = datas
-        self.__save_in_file(type, datas)
+    @classmethod
+    def save_data(cls, type, datas):
+        cls.kpl_data_update_info[type] = (tool.get_now_time_str(), len(datas))
+        cls.__latest_datas[type] = datas
+        cls.__save_in_file(type, datas)
 
-    def get_data(self, type):
+    @classmethod
+    def get_data(cls, type):
         type = type.value
-        if type in self.__latest_datas:
-            return self.__latest_datas[type]
-        result = self.__get_from_file(type)
+        if type in cls.__latest_datas:
+            return cls.__latest_datas[type]
+        result = cls.__get_from_file(type)
         if result is not None:
-            self.__latest_datas[type] = result
+            cls.__latest_datas[type] = result
         return result
 
 

--
Gitblit v1.8.0