|
@@ -201,7 +201,11 @@ class PoolRecall(object):
|
|
|
# log_.info('====== rov pool recall')
|
|
|
|
|
|
# 获取生效中的置顶视频
|
|
|
- if self.client_info is None:
|
|
|
+ # abCode = 30001 # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
|
|
|
+ if self.ab_code == config_.AB_CODE['rov_rank_appType_18_19']:
|
|
|
+ # appType: [18, 19],不获取置顶视频
|
|
|
+ top_video_ids, top_video_result = [], []
|
|
|
+ elif self.client_info is None:
|
|
|
# 无用户位置信息时,不获取置顶视频
|
|
|
top_video_ids, top_video_result = [], []
|
|
|
else:
|
|
@@ -209,7 +213,12 @@ class PoolRecall(object):
|
|
|
# log_.info('===top video result = {}'.format(top_video_ids))
|
|
|
|
|
|
# 获取修改过rov的视频
|
|
|
- update_rov_video_ids, update_rov_result = self.get_update_rov_videos()
|
|
|
+ # abCode = 30001 # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
|
|
|
+ if self.ab_code == config_.AB_CODE['rov_rank_appType_18_19']:
|
|
|
+ # appType: [18, 19],不获取修改过rov的视频
|
|
|
+ update_rov_video_ids, update_rov_result = [], []
|
|
|
+ else:
|
|
|
+ update_rov_video_ids, update_rov_result = self.get_update_rov_videos()
|
|
|
# log_.info('update rov result = {}'.format(update_rov_video_ids))
|
|
|
# 与置顶视频去重
|
|
|
update_rov_video_ids_dup, update_rov_dup_result = [], []
|
|
@@ -443,8 +452,8 @@ class PoolRecall(object):
|
|
|
if self.app_type == config_.APP_TYPE['APP']:
|
|
|
key_name_prefix = config_.RECALL_KEY_NAME_PREFIX_APP
|
|
|
# abCode = 30001 # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
|
|
|
- elif self.ab_code == config_.AB_CODE['rov_rank_appType_18_19']:
|
|
|
- key_name_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_APP_TYPE}{self.app_type}."
|
|
|
+ # elif self.ab_code == config_.AB_CODE['rov_rank_appType_18_19']:
|
|
|
+ # key_name_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_APP_TYPE}{self.app_type}."
|
|
|
# 其他
|
|
|
else:
|
|
|
key_name_prefix = config_.RECALL_KEY_NAME_PREFIX
|
|
@@ -479,7 +488,10 @@ class PoolRecall(object):
|
|
|
|
|
|
def get_video_last_idx(self):
|
|
|
"""获取用户上一次在rov召回池对应的位置"""
|
|
|
- if self.ab_code in config_.AB_CODE['rank_by_h'] or self.app_type == config_.APP_TYPE['APP']:
|
|
|
+ # if self.ab_code in [config_.AB_CODE['rank_by_h']] or self.app_type == config_.APP_TYPE['APP']:
|
|
|
+ # abCode = 30001 # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
|
|
|
+ if self.ab_code in [config_.AB_CODE['rank_by_h'], config_.AB_CODE['rov_rank_appType_18_19']] or \
|
|
|
+ self.app_type == config_.APP_TYPE['APP']:
|
|
|
rov_pool_key, redis_date = self.get_pool_redis_key_with_h('rov')
|
|
|
else:
|
|
|
rov_pool_key, redis_date = self.get_pool_redis_key('rov')
|
|
@@ -653,6 +665,30 @@ class PoolRecall(object):
|
|
|
key_name = f'{config_.APP_FINAL_RECALL_KEY_NAME_PREFIX}{redis_date}.{redis_h}'
|
|
|
return key_name, redis_h
|
|
|
|
|
|
+ # elif self.app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
|
|
|
+ # abCode = 30001 # 老好看视频 / 票圈最惊奇 首页/相关推荐逻辑更新实验
|
|
|
+ elif self.ab_code == config_.AB_CODE['rov_rank_appType_18_19']:
|
|
|
+ # 判断热度列表是否更新,未更新则使用前一小时的热度列表
|
|
|
+ key_name_prefix = f"{config_.RECALL_KEY_NAME_PREFIX_APP_TYPE}{self.app_type}."
|
|
|
+ key_name = f"{key_name_prefix}{now_date}.{h}"
|
|
|
+ if self.redis_helper.key_exists(key_name):
|
|
|
+ return key_name, h
|
|
|
+ else:
|
|
|
+ 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}{redis_date}.{redis_h}"
|
|
|
+ # 判断当前时间是否晚于数据正常更新时间,发送消息到飞书
|
|
|
+ now_m = datetime.now().minute
|
|
|
+ feishu_text = '{} —— appType = {}, h = {} 数据未按时更新,请及时查看解决。'.format(
|
|
|
+ config_.ENV_TEXT, self.app_type, h)
|
|
|
+ if now_m > config_.ROV_H_UPDATE_MINUTE:
|
|
|
+ send_msg_to_feishu(feishu_text)
|
|
|
+ return key_name, redis_h
|
|
|
+
|
|
|
else:
|
|
|
# 判断热度列表是否更新,未更新则使用前一小时的热度列表
|
|
|
key_name = f"{config_.RECALL_KEY_NAME_PREFIX_DUP_H}{self.return_count}.{now_date}.{h}"
|