فهرست منبع

update region_rule_rank_h h_rank_bottom

liqian 2 سال پیش
والد
کامیت
369b182cd8
1فایلهای تغییر یافته به همراه23 افزوده شده و 17 حذف شده
  1. 23 17
      region_rule_rank_h.py

+ 23 - 17
region_rule_rank_h.py

@@ -302,29 +302,35 @@ def h_rank_bottom(now_date, now_h, rule_key, region_code_list):
         redis_dt = datetime.datetime.strftime(now_date, '%Y%m%d')
         redis_h = now_h - 1
 
-    key_prefix_list = [
-        config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,
-        config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H,
-        config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H,
-        config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H
-    ]
+    # key_prefix_list = [
+    #     config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,
+    #     config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H,
+    #     config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H,
+    #     config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H
+    # ]
     # fea_df = get_feature_data(project=project, table=table, now_date=now_date - datetime.timedelta(hours=1))
     # region_list = list(set(fea_df[''].to_list()))
+
+    # 以上一小时的地域分组数据作为当前小时的数据
+    key_prefix = config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H
     for region in region_code_list:
         log_.info(f"region = {region}")
-        for key_prefix in key_prefix_list:
-            key_name = f"{key_prefix}{region}.{rule_key}.{redis_dt}.{redis_h}"
-            initial_data = redis_helper.get_data_zset_with_index(key_name=key_name, start=0, end=-1, with_scores=True)
-            final_data = dict()
-            for video_id, score in initial_data:
-                final_data[video_id] = score
-            # 存入对应的redis
-            final_key_name = \
-                f"{key_prefix}{region}.{rule_key}.{datetime.datetime.strftime(now_date, '%Y%m%d')}.{now_h}"
-            if len(final_data) > 0:
-                redis_helper.add_data_with_zset(key_name=final_key_name, data=final_data, expire_time=23 * 3600)
+        key_name = f"{key_prefix}{region}.{rule_key}.{redis_dt}.{redis_h}"
+        initial_data = redis_helper.get_data_zset_with_index(key_name=key_name, start=0, end=-1, with_scores=True)
+        final_data = dict()
+        h_video_ids = []
+        for video_id, score in initial_data:
+            final_data[video_id] = score
+            h_video_ids.append(int(video_id))
+        # 存入对应的redis
+        final_key_name = \
+            f"{key_prefix}{region}.{rule_key}.{datetime.datetime.strftime(now_date, '%Y%m%d')}.{now_h}"
+        if len(final_data) > 0:
+            redis_helper.add_data_with_zset(key_name=final_key_name, data=final_data, expire_time=23 * 3600)
         # 清空线上过滤应用列表
         redis_helper.del_keys(key_name=f"{config_.REGION_H_VIDEO_FILER}{region}.{rule_key}")
+        # 与其他召回视频池去重,存入对应的redis
+        dup_to_redis(h_video_ids=h_video_ids, now_date=now_date, now_h=now_h, rule_key=rule_key, region=region)
 
 
 def h_timer_check():