zhangyong 9 mēneši atpakaļ
vecāks
revīzija
e92ddea5dc

+ 11 - 11
common/redis_db.py

@@ -2,20 +2,20 @@ import redis
 from datetime import timedelta
 
 
-class SyncRedisHelper(object):
+class SyncRedisHelper:
     _pool: redis.ConnectionPool = None
     _instance = None
 
-    def __new__(cls, *args, **kwargs):
-        if cls._instance is None:
-            cls._instance = super().__new__(cls, *args, **kwargs)
-        return cls._instance
+    def __init__(self, *args, **kwargs):
+        if not self._instance:
+            self._pool = self._get_pool()
+            self._instance = self
 
     def _get_pool(self) -> redis.ConnectionPool:
         if self._pool is None:
             self._pool = redis.ConnectionPool(
-                # host="r-bp154bpw97gptefiqkpd.redis.rds.aliyuncs.com",  # 外网地址
                 host="r-bp1mb0v08fqi4hjffu.redis.rds.aliyuncs.com",  # 内网地址
+                # host="r-bp154bpw97gptefiqkpd.redis.rds.aliyuncs.com",  # 外网地址
                 port=6379,
                 db=1,
                 password="Qingqu2019",
@@ -55,8 +55,8 @@ def get_data(platform, out_video_id):
 # store_data('xiaoniangao', '12345')
 
 # 示例:获取一个数据
-# value = get_data('xiaoniangao', '12345')
-# if value is None:
-#     print("Value does not exist")
-# else:
-#     print(f"Retrieved value: {value}")
+value = get_data('xiaoniangao', '12345')
+if value is None:
+    print("Value does not exist")
+else:
+    print(f"Retrieved value: {value}")

+ 19 - 1
xiaoniangao/xiaoniangao_author/xiaoniangao_author_v2.py

@@ -9,6 +9,7 @@ import requests
 from common.mq import MQ
 
 sys.path.append(os.getcwd())
+from common.redis_db import get_data, store_data
 
 from common.common import Common
 from common import AliyunLogger, PiaoQuanPipeline
@@ -32,7 +33,6 @@ def tunnel_proxies():
 
     return tunnel_proxies
 
-
 class XiaoNianGaoAuthor:
     def __init__(self, platform, mode, rule_dict, env, user_list):
         self.platform = platform
@@ -247,6 +247,17 @@ class XiaoNianGaoAuthor:
             "strategy": self.mode,
             "out_video_id": video_obj.get("vid", ""),
         }
+        value = get_data(self.platform, video_obj.get("vid", ""))
+        if value:
+            AliyunLogger.logging(
+                code="2004",
+                trace_id=trace_id,
+                platform=self.platform,
+                mode=self.mode,
+                env=self.env,
+                data=video_dict,
+                message="redis重复视频{}".format(
+                    video_dict))
         pipeline = PiaoQuanPipeline(
             platform=self.platform,
             mode=self.mode,
@@ -300,6 +311,13 @@ class XiaoNianGaoAuthor:
             limit_flag = self.limiter.author_limitation(user_id=video_dict['user_id'])
             if limit_flag:
                 self.mq.send_msg(video_dict)
+                store_data(self.platform, video_obj.get("vid", ""))
+                Common.logging(
+                    log_type=self.mode,
+                    crawler=self.platform,
+                    env=self.env,
+                    message="写入 redis 成功",
+                )
                 self.download_count += 1
                 AliyunLogger.logging(
                     code="1002",