liqian 2 rokov pred
rodič
commit
b812287085
3 zmenil súbory, kde vykonal 28 pridanie a 13 odobranie
  1. 3 0
      config.py
  2. 2 0
      utils.py
  3. 23 13
      video_recall.py

+ 3 - 0
config.py

@@ -204,6 +204,9 @@ 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.'

+ 2 - 0
utils.py

@@ -156,6 +156,8 @@ class FilterVideos(object):
         if ab_code in [code for _, code in config_.AB_CODE['region_rank_by_h'].items()]:
             if key_flag == 'region_24h':
                 key_prefix = f"{config_.REGION_H_VIDEO_FILER_24H}{province_code}."
+            elif key_flag == 'day_24h':
+                key_prefix = f"{config_.H_VIDEO_FILER_24H}{province_code}."
             else:
                 key_prefix = f"{config_.REGION_H_VIDEO_FILER}{province_code}."
         elif ab_code in [code for _, code in config_.AB_CODE['rank_by_24h'].items()]:

+ 23 - 13
video_recall.py

@@ -75,12 +75,12 @@ class PoolRecall(object):
 
     def get_mid_h_key(self, province_code, key_flag=''):
         if key_flag == 'region_24h':
-            # mid对应小时级视频列表 redis-key
+            # mid对应小时级视频列表 redis-key  地域分组相对24h
             h_recall_mid_key = f"{config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX_REGION_24H}{self.app_type}.{self.mid}"
             # 判断mid对应小时级视频列表 时间记录
             h_record_key = f"{config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX_REGION_24H}{self.app_type}.{self.mid}"
-        elif key_flag == '24h':
-            # mid对应小时级视频列表 redis-key
+        elif key_flag in ['24h', 'day_24h']:
+            # mid对应小时级视频列表 redis-key   相对24h
             h_recall_mid_key = f"{config_.H_WITH_MID_RECALL_KEY_NAME_PREFIX_24H}{self.app_type}.{self.mid}"
             # 判断mid对应小时级视频列表 时间记录
             h_record_key = f"{config_.H_WITH_MID_RECORD_KEY_NAME_PREFIX_24H}{self.app_type}.{self.mid}"
@@ -97,6 +97,8 @@ class PoolRecall(object):
                     key_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_REGION_BY_24H}{province_code}."
                 else:
                     key_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H}{province_code}."
+            elif key_flag == 'day_24h':
+                key_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H}{province_code}."
             else:
                 key_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H}{province_code}."
         elif self.ab_code in [code for _, code in config_.AB_CODE['rank_by_24h'].items()]:
@@ -1053,17 +1055,23 @@ class PoolRecall(object):
         province_code = self.client_info.get('provinceCode', '-1')
         if province_code == '':
             province_code = '-1'
-        if province_code == '-1':
-            t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
-                 gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)]
-        elif self.ab_code == config_.AB_CODE['region_rank_by_h'].get('region_rule_rank2'):
-            t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
-                 gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)]
+
+        if self.ab_code == config_.AB_CODE['region_rank_by_h'].get('region_rule_rank2'):
+            if province_code == '-1':
+                t = [gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)]
+            else:
+                t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
+                     gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)]
         else:
-            t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
-                 gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
-                 # gevent.spawn(self.region_dup_recall, province_code, 1, size, expire_time),
-                 gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)]
+            if province_code == '-1':
+                t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h')]
+            else:
+                t = [gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size),
+                     gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'region_24h'),
+                     gevent.spawn(self.rov_pool_recall_with_region_by_h, province_code, size, 'day_24h'),
+                     # gevent.spawn(self.region_dup_recall, province_code, 1, size, expire_time),
+                     # gevent.spawn(self.region_dup_recall, province_code, 2, size, expire_time)
+                     ]
         gevent.joinall(t)
         region_recall_result_list = [i.get() for i in t]
         # 将已获取到的视频按顺序去重合并
@@ -1106,6 +1114,8 @@ class PoolRecall(object):
         """
         if key_flag == 'region_24h':
             push_from = config_.PUSH_FROM['rov_recall_region_24h']
+        elif key_flag == 'day_24h':
+            push_from = config_.PUSH_FROM['rov_recall_24h']
         else:
             push_from = config_.PUSH_FROM['rov_recall_region_h']
         # 获取mid对应的小时级列表redis-key