|
@@ -229,8 +229,8 @@ def video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type, al
|
|
|
t.append(gevent.spawn(pool_recall.get_return_video_reall))
|
|
t.append(gevent.spawn(pool_recall.get_return_video_reall))
|
|
|
else:
|
|
else:
|
|
|
t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
|
|
t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
|
|
|
- gevent.spawn(pool_recall.flow_pool_recall_new, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
|
- gevent.spawn(pool_recall.flow_pool_recall_new, size)]
|
|
|
|
|
|
|
+ gevent.spawn(pool_recall.flow_pool_recall_new_with_level, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
|
+ gevent.spawn(pool_recall.flow_pool_recall_new_with_level, size)]
|
|
|
if ab_code==60058:
|
|
if ab_code==60058:
|
|
|
t.append(gevent.spawn(pool_recall.get_U2I_reall, mid))
|
|
t.append(gevent.spawn(pool_recall.get_U2I_reall, mid))
|
|
|
t.append(gevent.spawn(pool_recall.get_play_reall, mid))
|
|
t.append(gevent.spawn(pool_recall.get_play_reall, mid))
|
|
@@ -458,9 +458,9 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
# t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:'))
|
|
# t.append(gevent.spawn(pool_recall.get_return_video_reall, 'rv2:'))
|
|
|
else:
|
|
else:
|
|
|
t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
|
|
t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time),
|
|
|
- gevent.spawn(pool_recall.flow_pool_recall_new, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
|
- gevent.spawn(pool_recall.flow_pool_recall_new, size)]
|
|
|
|
|
- if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073:
|
|
|
|
|
|
|
+ gevent.spawn(pool_recall.flow_pool_recall_new_with_level, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
|
+ gevent.spawn(pool_recall.flow_pool_recall_new_with_level, size)]
|
|
|
|
|
+ if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073 or ab_code == 60074:
|
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
|
elif ab_code == 60056 or ab_code == 60071:
|
|
elif ab_code == 60056 or ab_code == 60071:
|
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
|
|
@@ -481,7 +481,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
result['rankResult'] = []
|
|
result['rankResult'] = []
|
|
|
return result
|
|
return result
|
|
|
#1. merge simrecall or deepfm
|
|
#1. merge simrecall or deepfm
|
|
|
- if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073:
|
|
|
|
|
|
|
+ if ab_code == 60054 or ab_code == 60066 or ab_code == 60072 or ab_code == 60073 or ab_code == 60074:
|
|
|
rov_pool_recall = []
|
|
rov_pool_recall = []
|
|
|
if len(recall_result_list) >= 2:
|
|
if len(recall_result_list) >= 2:
|
|
|
region_recall = recall_result_list[0]
|
|
region_recall = recall_result_list[0]
|
|
@@ -1009,7 +1009,8 @@ def update_redis_data(result, app_type, mid, top_K, expire_time=24*3600):
|
|
|
flow_recall_video = [item for item in result if item['pushFrom'] == config_.PUSH_FROM['flow_recall']]
|
|
flow_recall_video = [item for item in result if item['pushFrom'] == config_.PUSH_FROM['flow_recall']]
|
|
|
if flow_recall_video:
|
|
if flow_recall_video:
|
|
|
# update_local_distribute_count(flow_recall_video)
|
|
# update_local_distribute_count(flow_recall_video)
|
|
|
- update_local_distribute_count_new(flow_recall_video)
|
|
|
|
|
|
|
+ # update_local_distribute_count_new(flow_recall_video)
|
|
|
|
|
+ update_local_distribute_count_new_with_level(flow_recall_video)
|
|
|
# log_.info('update local distribute count success!')
|
|
# log_.info('update local distribute count success!')
|
|
|
|
|
|
|
|
# 限流视频分发数记录
|
|
# 限流视频分发数记录
|
|
@@ -1202,6 +1203,58 @@ def update_local_distribute_count_new(videos):
|
|
|
log_.error(traceback.format_exc())
|
|
log_.error(traceback.format_exc())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def update_local_distribute_count_new_with_level(videos):
|
|
|
|
|
+ """
|
|
|
|
|
+ 更新本地分发数
|
|
|
|
|
+ :param videos: 视频列表 type-list [{'videoId':'', 'flowPool':'', 'distributeCount': '',
|
|
|
|
|
+ 'rovScore': '', 'pushFrom': 'flow_pool', 'abCode': self.ab_code}, ....]
|
|
|
|
|
+ :return:
|
|
|
|
|
+ """
|
|
|
|
|
+ try:
|
|
|
|
|
+ redis_helper = RedisHelper()
|
|
|
|
|
+ level_weight = redis_helper.get_data_from_redis(key_name=config_.FLOWPOOL_LEVEL_WEIGHT_KEY_NAME)
|
|
|
|
|
+ level_list = [level for level in json.loads(level_weight)]
|
|
|
|
|
+ for item in videos:
|
|
|
|
|
+ video_id, flow_pool = item['videoId'], item['flowPool']
|
|
|
|
|
+ key_name = f"{config_.LOCAL_DISTRIBUTE_COUNT_PREFIX}{video_id}:{flow_pool}"
|
|
|
|
|
+ # 本地记录的分发数 - 1
|
|
|
|
|
+ redis_helper.decr_key(key_name=key_name, amount=1, expire_time=15 * 60)
|
|
|
|
|
+ # 对该视频做分发数检查
|
|
|
|
|
+ cur_count = redis_helper.get_data_from_redis(key_name=key_name)
|
|
|
|
|
+ # 无记录
|
|
|
|
|
+ if cur_count is None:
|
|
|
|
|
+ continue
|
|
|
|
|
+ # 本地分发数 cur_count <= 0,从所有的流量召回池移除,删除本地分发记录key
|
|
|
|
|
+ if int(cur_count) <= 0:
|
|
|
|
|
+ add_remove_log = False
|
|
|
|
|
+ redis_helper.del_keys(key_name=key_name)
|
|
|
|
|
+ for app_name in config_.APP_TYPE:
|
|
|
|
|
+ app_type = config_.APP_TYPE.get(app_name)
|
|
|
|
|
+ flow_pool_key_list = [
|
|
|
|
|
+ f"{config_.QUICK_FLOWPOOL_KEY_NAME_PREFIX_SET}{app_type}:{config_.QUICK_FLOW_POOL_ID}"
|
|
|
|
|
+ ]
|
|
|
|
|
+ for level in level_list:
|
|
|
|
|
+ flow_pool_key_list.append(f"{config_.FLOWPOOL_KEY_NAME_PREFIX_SET_LEVEL}{app_type}:{level}")
|
|
|
|
|
+ for key in flow_pool_key_list:
|
|
|
|
|
+ remove_res = redis_helper.remove_value_from_set(key_name=key,
|
|
|
|
|
+ values=(f"{video_id}-{flow_pool}", ))
|
|
|
|
|
+ if remove_res > 0:
|
|
|
|
|
+ add_remove_log = True
|
|
|
|
|
+ if add_remove_log is True:
|
|
|
|
|
+ log_.info({'tag': 'remove video_id from flow_pool', 'video_id': video_id, 'flow_pool': flow_pool})
|
|
|
|
|
+
|
|
|
|
|
+ # if redis_helper.key_exists(key_name=key_name):
|
|
|
|
|
+ # # 该视频本地有记录,本地记录的分发数 - 1
|
|
|
|
|
+ # redis_helper.decr_key(key_name=key_name, amount=1, expire_time=5 * 60)
|
|
|
|
|
+ # else:
|
|
|
|
|
+ # # 该视频本地无记录,接口获取的分发数 - 1
|
|
|
|
|
+ # redis_helper.incr_key(key_name=key_name, amount=int(item['distributeCount']) - 1, expire_time=5 * 60)
|
|
|
|
|
+
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ log_.error('update_local_distribute_count error...')
|
|
|
|
|
+ log_.error(traceback.format_exc())
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
def get_religion_class_with_mid(mid, religion_class_name):
|
|
def get_religion_class_with_mid(mid, religion_class_name):
|
|
|
"""
|
|
"""
|
|
|
判断用户是否属于对应的宗教类型
|
|
判断用户是否属于对应的宗教类型
|
|
@@ -1755,7 +1808,8 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
|
|
|
# return video, return video2
|
|
# return video, return video2
|
|
|
# old video: 60056, test2
|
|
# old video: 60056, test2
|
|
|
if ab_code == 60054 or ab_code == 60056 or ab_code == 60067 or ab_code == 60068 or ab_code == 60066 \
|
|
if ab_code == 60054 or ab_code == 60056 or ab_code == 60067 or ab_code == 60068 or ab_code == 60066 \
|
|
|
- or ab_code == 60069 or ab_code == 60070 or ab_code == 60071 or ab_code == 60072 or ab_code == 60073:
|
|
|
|
|
|
|
+ or ab_code == 60069 or ab_code == 60070 or ab_code == 60071 or ab_code == 60072 or ab_code == 60073 \
|
|
|
|
|
+ or ab_code == 60074:
|
|
|
result, fea_info = video_old_recommend(request_id=request_id,
|
|
result, fea_info = video_old_recommend(request_id=request_id,
|
|
|
mid=mid, uid=uid, app_type=app_type,
|
|
mid=mid, uid=uid, app_type=app_type,
|
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|
|
@@ -1874,7 +1928,8 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
|
|
|
# old_video_index=old_video_index, video_id=video_id,
|
|
# old_video_index=old_video_index, video_id=video_id,
|
|
|
# params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
|
|
# params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
|
|
|
if ab_code == 60054 or ab_code == 60056 or ab_code == 60067 or ab_code == 60068 or ab_code == 60066 \
|
|
if ab_code == 60054 or ab_code == 60056 or ab_code == 60067 or ab_code == 60068 or ab_code == 60066 \
|
|
|
- or ab_code == 60069 or ab_code == 60070 or ab_code == 60071 or ab_code == 60072 or ab_code == 60073:
|
|
|
|
|
|
|
+ or ab_code == 60069 or ab_code == 60070 or ab_code == 60071 or ab_code == 60072 or ab_code == 60073 \
|
|
|
|
|
+ or ab_code == 60074:
|
|
|
result, fea_info = video_old_recommend(request_id=request_id,
|
|
result, fea_info = video_old_recommend(request_id=request_id,
|
|
|
mid=mid, uid=uid, app_type=app_type,
|
|
mid=mid, uid=uid, app_type=app_type,
|
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|
|
size=size, top_K=top_K, flow_pool_P=flow_pool_P,
|