|
@@ -400,8 +400,8 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
gevent.spawn(pool_recall.get_region_day_recall, size, region_code),
|
|
gevent.spawn(pool_recall.get_region_day_recall, size, region_code),
|
|
gevent.spawn(pool_recall.get_selected_recall, size, region_code),
|
|
gevent.spawn(pool_recall.get_selected_recall, size, region_code),
|
|
gevent.spawn(pool_recall.get_no_selected_recall, size, region_code),
|
|
gevent.spawn(pool_recall.get_no_selected_recall, size, region_code),
|
|
- gevent.spawn(pool_recall.flow_pool_recall, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
- gevent.spawn(pool_recall.flow_pool_recall, size)]
|
|
|
|
|
|
+ gevent.spawn(pool_recall.new_flow_pool_recall, size, config_.QUICK_FLOW_POOL_ID),
|
|
|
|
+ gevent.spawn(pool_recall.new_flow_pool_recall, size)]
|
|
|
|
|
|
if ab_code ==60049:
|
|
if ab_code ==60049:
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall))
|
|
t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall))
|
|
@@ -411,7 +411,7 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
all_recall_result = []
|
|
all_recall_result = []
|
|
#print(all_recall_result_list)
|
|
#print(all_recall_result_list)
|
|
result['recallTime'] = (time.time() - start_recall) * 1000
|
|
result['recallTime'] = (time.time() - start_recall) * 1000
|
|
-
|
|
|
|
|
|
+ #print("recall time:", result['recallTime'])
|
|
if not all_recall_result_list or len(all_recall_result_list)==0:
|
|
if not all_recall_result_list or len(all_recall_result_list)==0:
|
|
return result
|
|
return result
|
|
for recall_item in all_recall_result_list:
|
|
for recall_item in all_recall_result_list:
|
|
@@ -422,6 +422,7 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
|
|
|
#print("all_recall_result:", all_recall_result)
|
|
#print("all_recall_result:", all_recall_result)
|
|
#2. duplicate
|
|
#2. duplicate
|
|
|
|
+ dup_time = time.time()
|
|
recall_dict = {}
|
|
recall_dict = {}
|
|
fast_flow_set = set('')
|
|
fast_flow_set = set('')
|
|
flow_flow_set = set('')
|
|
flow_flow_set = set('')
|
|
@@ -434,48 +435,54 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
flowFlag_dict = {}
|
|
flowFlag_dict = {}
|
|
for per_item in all_recall_result:
|
|
for per_item in all_recall_result:
|
|
#print(per_item)
|
|
#print(per_item)
|
|
- vId = int(per_item.get("videoId",0))
|
|
|
|
- if vId==0:
|
|
|
|
- continue
|
|
|
|
- recall_name = per_item.get("pushFrom",'')
|
|
|
|
- flow_pool = per_item.get("flowPool", '')
|
|
|
|
- if flow_pool != '':
|
|
|
|
- flow_pool_id = int(flow_pool.split('#')[0])
|
|
|
|
- if flow_pool_id == config_.QUICK_FLOW_POOL_ID:
|
|
|
|
- fast_flow_set.add(vId)
|
|
|
|
|
|
+ try:
|
|
|
|
+ vId = int(per_item.get("videoId",0))
|
|
|
|
+ if vId==0:
|
|
|
|
+ continue
|
|
|
|
+ recall_name = per_item.get("pushFrom",'')
|
|
|
|
+ flow_pool = per_item.get("flowPool", '')
|
|
|
|
+ if flow_pool != '':
|
|
|
|
+ flow_pool_id = int(flow_pool.split('#')[0])
|
|
|
|
+ if flow_pool_id == config_.QUICK_FLOW_POOL_ID:
|
|
|
|
+ fast_flow_set.add(vId)
|
|
|
|
+ else:
|
|
|
|
+ flow_flow_set.add(vId)
|
|
|
|
+ flowFlag_dict[vId] = flow_pool
|
|
|
|
+
|
|
|
|
+ #duplicate divide into
|
|
|
|
+ if vId not in recall_dict:
|
|
|
|
+ if recall_name == config_.PUSH_FROM['rov_recall_region_h']:
|
|
|
|
+ region_h_recall.append(per_item)
|
|
|
|
+ elif recall_name == config_.PUSH_FROM['rov_recall_region_24h']:
|
|
|
|
+ region_day_recall.append(per_item)
|
|
|
|
+ elif recall_name == config_.PUSH_FROM['rov_recall_24h']:
|
|
|
|
+ select_day_recall.append(per_item)
|
|
|
|
+ elif recall_name == config_.PUSH_FROM['rov_recall_24h_dup']:
|
|
|
|
+ no_selected_recall.append(per_item)
|
|
|
|
+ elif recall_name == config_.PUSH_FROM['sim_hot_vid_recall']:
|
|
|
|
+ sim_hot_recall.append(per_item)
|
|
|
|
+ elif recall_name == config_.PUSH_FROM['flow_recall']:
|
|
|
|
+ flow_recall.append(per_item)
|
|
|
|
+ if vId not in recall_dict:
|
|
|
|
+ recall_dict[vId] = recall_name
|
|
else:
|
|
else:
|
|
- flow_flow_set.add(vId)
|
|
|
|
- flowFlag_dict[vId] = flow_pool
|
|
|
|
-
|
|
|
|
- #duplicate divide into
|
|
|
|
- if vId not in recall_dict:
|
|
|
|
- if recall_name == config_.PUSH_FROM['rov_recall_region_h']:
|
|
|
|
- region_h_recall.append(per_item)
|
|
|
|
- elif recall_name == config_.PUSH_FROM['rov_recall_region_24h']:
|
|
|
|
- region_day_recall.append(per_item)
|
|
|
|
- elif recall_name == config_.PUSH_FROM['rov_recall_24h']:
|
|
|
|
- select_day_recall.append(per_item)
|
|
|
|
- elif recall_name == config_.PUSH_FROM['rov_recall_24h_dup']:
|
|
|
|
- no_selected_recall.append(per_item)
|
|
|
|
- elif recall_name == config_.PUSH_FROM['sim_hot_vid_recall']:
|
|
|
|
- sim_hot_recall.append(per_item)
|
|
|
|
- elif recall_name == config_.PUSH_FROM['flow_recall']:
|
|
|
|
- flow_recall.append(per_item)
|
|
|
|
- if vId not in recall_dict:
|
|
|
|
- recall_dict[vId] = recall_name
|
|
|
|
- else:
|
|
|
|
- recall_name = recall_dict[vId] + "," + recall_name
|
|
|
|
- recall_dict[vId] = recall_name
|
|
|
|
|
|
+ recall_name = recall_dict[vId] + "," + recall_name
|
|
|
|
+ recall_dict[vId] = recall_name
|
|
|
|
+ except:
|
|
|
|
+ continue
|
|
#print("recall_dict:", recall_dict)
|
|
#print("recall_dict:", recall_dict)
|
|
|
|
+ #print("recall time:", (time.time()-dup_time)*1000)
|
|
#3. filter video, 先过预曝光
|
|
#3. filter video, 先过预曝光
|
|
|
|
+ filter_time = time.time()
|
|
filter_ = FilterVideos(request_id=request_id,
|
|
filter_ = FilterVideos(request_id=request_id,
|
|
app_type=app_type, mid=mid, uid=uid, video_ids=list(recall_dict.keys()))
|
|
app_type=app_type, mid=mid, uid=uid, video_ids=list(recall_dict.keys()))
|
|
|
|
|
|
#print("filer:", list(recall_dict.keys()))
|
|
#print("filer:", list(recall_dict.keys()))
|
|
#a).expose filter
|
|
#a).expose filter
|
|
#all_recall_list = list(recall_dict.keys())
|
|
#all_recall_list = list(recall_dict.keys())
|
|
- all_recall_list = filter_.filter_videos_new(pool_type='rov', region_code=region_code, shield_config=shield_config)
|
|
|
|
|
|
+ all_recall_list = filter_.filter_videos_new(region_code=region_code, shield_config=shield_config, flow_set=flowFlag_dict.keys())
|
|
#print("filer after:", all_recall_list)
|
|
#print("filer after:", all_recall_list)
|
|
|
|
+ #print("filter_ time:", (time.time() - filter_time) * 1000)
|
|
#4. sort: old sort: flow 按概率出
|
|
#4. sort: old sort: flow 按概率出
|
|
start_rank = time.time()
|
|
start_rank = time.time()
|
|
#quick_flow_pool_P get from redis
|
|
#quick_flow_pool_P get from redis
|
|
@@ -509,6 +516,7 @@ def new_video_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
|
|
|
|
|
|
result['rankResult'] = rank_result
|
|
result['rankResult'] = rank_result
|
|
result['rankTime'] = (time.time() - start_rank) * 1000
|
|
result['rankTime'] = (time.time() - start_rank) * 1000
|
|
|
|
+ #print("rank time:", result['rankTime'])
|
|
return result
|
|
return result
|
|
# return rank_result, last_rov_recall_key
|
|
# return rank_result, last_rov_recall_key
|
|
|
|
|