liqian 2 年 前
コミット
2da5720512
3 ファイル変更35 行追加4 行削除
  1. 5 0
      config.py
  2. 23 2
      region_rule_rank_h.py
  3. 7 2
      videos_filter.py

+ 5 - 0
config.py

@@ -188,11 +188,16 @@ class BaseConfig(object):
     # 小程序天级更新结果与 小程序地域分组天级更新结果/小程序地域分组小时级更新结果 去重后 存放 redis key前缀,
     # 完整格式:com.weiqu.video.recall.hot.item.score.dup2.region.day.h.{region}.{rule_key}.{date}.{h}
     RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H = 'com.weiqu.video.recall.hot.item.score.dup2.region.day.h.'
+    # 小程序24h更新结果与 小程序地域分组24h更新结果/小程序地域分组小时级更新结果 去重后 存放 redis key前缀,
+    # 完整格式:com.weiqu.video.recall.hot.item.score.dup2.region.24h.h.{region}.{rule_key}.{date}.{h}
+    RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H = 'com.weiqu.video.recall.hot.item.score.dup2.region.24h.h.'
     # 小程序离线ROV模型结果与 小程序天级更新结果/小程序地域分组天级更新结果/小程序地域分组小时级更新结果 去重后 存放 redis key前缀,
     # 完整格式:com.weiqu.video.recall.hot.item.score.dup.region.h.{region}.{rule_key}.{date}.{h}
     RECALL_KEY_NAME_PREFIX_DUP_REGION_H = 'com.weiqu.video.recall.hot.item.score.dup.region.h.'
     # 地域分组小时级视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.region.h.item.{region}.{rule_key}
     REGION_H_VIDEO_FILER = 'com.weiqu.video.filter.region.h.item.'
+    # 小时级视频状态不符合推荐要求的列表 redis key,完整格式:com.weiqu.video.filter.h.item.24h.{region}.{rule_key}
+    # H_VIDEO_FILER_24H = 'com.weiqu.video.filter.h.item.24h.'
 
     # 小程序地域分组天级更新结果存放 redis key前缀,完整格式:com.weiqu.video.recall.item.score.region.day.{region}.{rule_key}.{date}
     RECALL_KEY_NAME_PREFIX_REGION_BY_DAY = 'com.weiqu.video.recall.item.score.region.day.'

+ 23 - 2
region_rule_rank_h.py

@@ -266,7 +266,26 @@ def dup_to_redis(h_video_ids, now_date, now_h, rule_key, region_24h_rule_key, re
             redis_helper.add_data_with_zset(key_name=region_24h_dup_key_name, data=region_24h_dup, expire_time=23 * 3600)
 
     # ##### 去重小程序天级更新结果,并另存为redis中
-    day_key_name = f"{config_.RECALL_KEY_NAME_PREFIX_BY_DAY}rule2.{datetime.datetime.strftime(now_date, '%Y%m%d')}"
+    # day_key_name = f"{config_.RECALL_KEY_NAME_PREFIX_BY_DAY}rule2.{datetime.datetime.strftime(now_date, '%Y%m%d')}"
+    # if redis_helper.key_exists(key_name=day_key_name):
+    #     day_data = redis_helper.get_data_zset_with_index(
+    #         key_name=day_key_name, start=0, end=-1, with_scores=True)
+    #     log_.info(f'day data count = {len(day_data)}')
+    #     day_dup = {}
+    #     for video_id, score in day_data:
+    #         if int(video_id) not in h_video_ids:
+    #             day_dup[int(video_id)] = score
+    #             h_video_ids.append(int(video_id))
+    #     log_.info(f"day data dup count = {len(day_dup)}")
+    #     day_dup_key_name = \
+    #         f"{config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H}{region}.{rule_key}." \
+    #         f"{datetime.datetime.strftime(now_date, '%Y%m%d')}.{now_h}"
+    #     if len(day_dup) > 0:
+    #         redis_helper.add_data_with_zset(key_name=day_dup_key_name, data=day_dup, expire_time=23 * 3600)
+
+    # ##### 去重小程序相对24h更新结果,并另存为redis中
+    day_key_name = f"{config_.RECALL_KEY_NAME_PREFIX_BY_24H}rule1." \
+                   f"{datetime.datetime.strftime(now_date, '%Y%m%d')}.{now_h}"
     if redis_helper.key_exists(key_name=day_key_name):
         day_data = redis_helper.get_data_zset_with_index(
             key_name=day_key_name, start=0, end=-1, with_scores=True)
@@ -278,10 +297,12 @@ def dup_to_redis(h_video_ids, now_date, now_h, rule_key, region_24h_rule_key, re
                 h_video_ids.append(int(video_id))
         log_.info(f"day data dup count = {len(day_dup)}")
         day_dup_key_name = \
-            f"{config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H}{region}.{rule_key}." \
+            f"{config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H}{region}.{rule_key}." \
             f"{datetime.datetime.strftime(now_date, '%Y%m%d')}.{now_h}"
         if len(day_dup) > 0:
             redis_helper.add_data_with_zset(key_name=day_dup_key_name, data=day_dup, expire_time=23 * 3600)
+        # 清空线上过滤应用列表
+        redis_helper.del_keys(key_name=f"{config_.H_VIDEO_FILER_24H}{region}.{rule_key}")
 
     # ##### 去重小程序模型更新结果,并另存为redis中
     model_key_name = get_rov_redis_key(now_date=now_date)

+ 7 - 2
videos_filter.py

@@ -575,7 +575,8 @@ def filter_region_videos():
                 config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,
                 config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H,
                 # config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H,
-                config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H,
+                # config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H,
+                config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H,
                 config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H
             ]
             for i, key_prefix in enumerate(key_prefix_list):
@@ -607,9 +608,13 @@ def filter_region_videos():
                     redis_helper.add_data_with_set(key_name=f"{config_.REGION_H_VIDEO_FILER}{region}.{key}",
                                                    values=filter_videos, expire_time=2 * 3600)
                 elif i == 1:
-                    # 将小时级的数据需要过滤的视频加入到线上过滤应用列表中
+                    # 将地域分组24h的数据需要过滤的视频加入到线上过滤应用列表中
                     redis_helper.add_data_with_set(key_name=f"{config_.REGION_H_VIDEO_FILER_24H}{region}.{key}",
                                                    values=filter_videos, expire_time=2 * 3600)
+                elif i == 2:
+                    # 将相对24h的数据需要过滤的视频加入到线上过滤应用列表中
+                    redis_helper.add_data_with_set(key_name=f"{config_.H_VIDEO_FILER_24H}{region}.{key}",
+                                                   values=filter_videos, expire_time=2 * 3600)
 
         log_.info(f"region = {region} videos filter end!")
     log_.info("region_h videos filter end!")