liqian 3 yıl önce
ebeveyn
işleme
2f26f33aca
1 değiştirilmiş dosya ile 36 ekleme ve 10 silme
  1. 36 10
      videos_filter.py

+ 36 - 10
videos_filter.py

@@ -1,6 +1,6 @@
 import time
 import traceback
-from datetime import date, timedelta
+from datetime import date, timedelta, datetime
 
 from utils import filter_video_status, send_msg_to_feishu
 from db_helper import RedisHelper
@@ -11,11 +11,16 @@ config_, env = set_config()
 log_ = Log()
 
 
-def filter_rov_pool():
+def filter_rov_pool(app_type=None):
     """ROV召回池视频过滤"""
     log_.info("rov recall pool filter start ...")
     # 拼接redis-key
-    key_name, _ = get_pool_redis_key(pool_type='rov')
+    if app_type is None:
+        key_name, _ = get_pool_redis_key(pool_type='rov')
+    else:
+        log_.info("appType = {}".format(app_type))
+        key_name, _ = get_pool_redis_key(pool_type='rov', app_type=app_type)
+
     # 获取视频
     redis_helper = RedisHelper()
     data = redis_helper.get_data_zset_with_index(key_name=key_name, start=0, end=-1)
@@ -144,14 +149,33 @@ def get_pool_redis_key(pool_type, app_type=None):
     """
     redis_helper = RedisHelper()
     if pool_type == 'rov':
-        # 判断热度列表是否更新,未更新则使用前一天的热度列表
-        key_name = config_.RECALL_KEY_NAME_PREFIX + time.strftime('%Y%m%d')
-        if redis_helper.key_exists(key_name):
-            redis_date = date.today().strftime('%Y%m%d')
+        # appType = 6
+        if app_type == config_.APP_TYPE['SHORT_VIDEO']:
+            # 获取当前所在小时
+            redis_date = datetime.now().hour
+            # 判断热度列表是否更新,未更新则使用前一小时的热度列表
+            key_name = '{}{}.{}'.format(config_.RECALL_KEY_NAME_PREFIX_APP_TYPE, app_type, redis_date)
+            if redis_helper.key_exists(key_name):
+                return key_name, redis_date
+            else:
+                if redis_date == 0:
+                    redis_date_ = 23
+                else:
+                    redis_date_ = redis_date - 1
+                key_name = '{}{}.{}'.format(config_.RECALL_KEY_NAME_PREFIX_APP_TYPE, app_type, redis_date_)
+
+                return key_name, redis_date_
+            # 其他
         else:
-            redis_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
-            key_name = config_.RECALL_KEY_NAME_PREFIX + redis_date
-        return key_name, redis_date
+            # 判断热度列表是否更新,未更新则使用前一天的热度列表
+            key_name = config_.RECALL_KEY_NAME_PREFIX + time.strftime('%Y%m%d')
+            if redis_helper.key_exists(key_name):
+                redis_date = date.today().strftime('%Y%m%d')
+            else:
+                redis_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
+                key_name = config_.RECALL_KEY_NAME_PREFIX + redis_date
+
+            return key_name, redis_date
 
     elif pool_type == 'flow':
         # 流量池
@@ -166,6 +190,8 @@ def main():
     try:
         # ROV召回池视频过滤
         filter_rov_pool()
+        # appType = 6,ROV召回池视频过滤
+        filter_rov_pool(app_type=config_.APP_TYPE['SHORT_VIDEO'])
         # 流量池视频过滤
         filter_flow_pool()
         # 兜底视频过滤