liqian 2 年之前
父節點
當前提交
2d1071d9dd
共有 2 個文件被更改,包括 20 次插入12 次删除
  1. 4 4
      video_rank.py
  2. 16 8
      video_recall.py

+ 4 - 4
video_rank.py

@@ -29,11 +29,11 @@ def video_rank(data, size, top_K, flow_pool_P):
     # 地域分组小时级规则更新数据
     region_h_recall = [item for item in data['rov_pool_recall']
                          if item.get('pushFrom') == config_.PUSH_FROM['rov_recall_region_h']]
-    region_h_recall_rank = sorted(h_recall, key=lambda k: k.get('rovScore', 0), reverse=True)
+    region_h_recall_rank = sorted(region_h_recall, key=lambda k: k.get('rovScore', 0), reverse=True)
     # 地域分组天级规则更新数据
     region_day_recall = [item for item in data['rov_pool_recall']
-                         if item.get('pushFrom') == config_.PUSH_FROM['recall_pool_region_day']]
-    region_day_recall_rank = sorted(h_recall, key=lambda k: k.get('rovScore', 0), reverse=True)
+                         if item.get('pushFrom') == config_.PUSH_FROM['rov_recall_region_day']]
+    region_day_recall_rank = sorted(region_day_recall, key=lambda k: k.get('rovScore', 0), reverse=True)
     # 天级规则更新数据
     day_recall = [item for item in data['rov_pool_recall'] if item.get('pushFrom') == config_.PUSH_FROM['rov_recall_day']]
     day_recall_rank = sorted(day_recall, key=lambda k: k.get('rovScore', 0), reverse=True)
@@ -43,7 +43,7 @@ def video_rank(data, size, top_K, flow_pool_P):
         if item.get('pushFrom') not in
            [config_.PUSH_FROM['rov_recall_h'],
             config_.PUSH_FROM['rov_recall_region_h'],
-            config_.PUSH_FROM['recall_pool_region_day'],
+            config_.PUSH_FROM['rov_recall_region_day'],
             config_.PUSH_FROM['rov_recall_day']]
     ]
     rov_initial_recall_rank = sorted(rov_initial_recall, key=lambda k: k.get('rovScore', 0), reverse=True)

+ 16 - 8
video_recall.py

@@ -966,19 +966,27 @@ class PoolRecall(object):
 
         if region_dup == 1:
             # 小程序地域分组天级更新结果与小程序地域分组小时级更新结果去重
-            key_name = \
-                f"{config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H}{province_code}.{self.rule_key}.{now_date}.{h}"
+            key_name_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_DAY_H
         elif region_dup == 2:
             # 小程序天级更新结果与 小程序地域分组天级更新结果/小程序地域分组小时级更新结果 去重
-            key_name = \
-                f"{config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H}{province_code}.{self.rule_key}.{now_date}.{h}"
+            key_name_prefix = config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_DAY_H
         else:
-            key_name = None
-
-        if not self.redis_helper.key_exists(key_name=key_name):
-            return None, None, None
+            key_name_prefix = ''
+        key_name = f"{key_name_prefix}{province_code}.{self.rule_key}.{now_date}.{h}"
         last_region_dup_key = \
             f'{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{region_dup}.{self.app_type}.{self.mid}.{h}'
+
+        if not self.redis_helper.key_exists(key_name=key_name):
+            if h == 0:
+                redis_h = 23
+                redis_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
+            else:
+                redis_h = h - 1
+                redis_date = now_date
+            key_name = f"{key_name_prefix}{province_code}.{self.rule_key}.{redis_date}.{redis_h}"
+            last_region_dup_key = \
+                f'{config_.LAST_VIDEO_FROM_REGION_DUP_PREFIX}{region_dup}.{self.app_type}.{self.mid}.{redis_h}'
+
         value = self.redis_helper.get_data_from_redis(last_region_dup_key)
         if value:
             idx = self.redis_helper.get_index_with_data(key_name, value)