|
@@ -1774,6 +1774,7 @@ class PoolRecall(object):
|
|
|
last_video_key_prefix=last_video_key_prefix)
|
|
|
if not pool_key:
|
|
|
return []
|
|
|
+ recall_data = []
|
|
|
pool_recall_result = []
|
|
|
# 每次获取的视频数
|
|
|
get_size = size * 5
|
|
@@ -1789,6 +1790,7 @@ class PoolRecall(object):
|
|
|
with_scores=True)
|
|
|
if not data:
|
|
|
break
|
|
|
+ recall_data.extend(data)
|
|
|
# 获取视频id,并转换类型为int,并存储为key-value{videoId: score}
|
|
|
video_ids = []
|
|
|
video_score = {}
|
|
@@ -1811,7 +1813,7 @@ class PoolRecall(object):
|
|
|
pool_recall_result.extend(temp_result)
|
|
|
else:
|
|
|
# 将此次获取的末位视频id同步刷新到Redis中,方便下次快速定位到召回位置,过期时间为1天
|
|
|
- if self.mid:
|
|
|
+ if self.mid and self.ab_code != config_.AB_CODE['region_rank_by_h'].get('abtest_112'):
|
|
|
# mid为空时,不做记录
|
|
|
last_video_key = f'{last_video_key_prefix}{self.app_type}:{self.mid}'
|
|
|
self.redis_helper.set_data_to_redis(key_name=last_video_key, value=data[-1][0],
|
|
@@ -1820,6 +1822,13 @@ class PoolRecall(object):
|
|
|
|
|
|
pool_recall_result.sort(key=lambda x: x.get('rovScore', 0), reverse=True)
|
|
|
|
|
|
+ if len(recall_data) > 0 and len(pool_recall_result) == 0 \
|
|
|
+ and self.ab_code == config_.AB_CODE['region_rank_by_h'].get('abtest_112') and self.mid:
|
|
|
+ # 召回数据不为空 & 过滤后结果为空 & 位于实验组 & mid不为空时,更新召回获取的末位视频id记录到定位的key中
|
|
|
+ last_video_key = f'{last_video_key_prefix}{self.app_type}:{self.mid}'
|
|
|
+ self.redis_helper.set_data_to_redis(key_name=last_video_key, value=recall_data[-1][0],
|
|
|
+ expire_time=expire_time)
|
|
|
+
|
|
|
log_.info({
|
|
|
'logTimestamp': int(time.time() * 1000),
|
|
|
'request_id': self.request_id,
|