|  | @@ -136,7 +136,7 @@ def positon_duplicate(pos1_vids, pos2_vids, videos):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, client_info, expire_time=24*3600,
 | 
	
		
			
				|  |  | -                    ab_code=config_.AB_CODE['initial']):
 | 
	
		
			
				|  |  | +                    ab_code=config_.AB_CODE['initial'], return_count=-1):
 | 
	
		
			
				|  |  |      """
 | 
	
		
			
				|  |  |      首页线上推荐逻辑
 | 
	
		
			
				|  |  |      :param mid: mid type-string
 | 
	
	
		
			
				|  | @@ -171,9 +171,9 @@ def video_recommend(mid, uid, size, top_K, flow_pool_P, app_type, algo_type, cli
 | 
	
		
			
				|  |  |      '''
 | 
	
		
			
				|  |  |      recall_result_list = []
 | 
	
		
			
				|  |  |      pool_recall = PoolRecall(app_type=app_type, mid=mid, uid=uid, ab_code=ab_code,
 | 
	
		
			
				|  |  | -                             client_info=client_info)
 | 
	
		
			
				|  |  | +                             client_info=client_info, return_count=return_count)
 | 
	
		
			
				|  |  |      _, last_rov_recall_key, _ = pool_recall.get_video_last_idx()
 | 
	
		
			
				|  |  | -    if ab_code == config_.AB_CODE['rank_by_h']:
 | 
	
		
			
				|  |  | +    if ab_code in config_.AB_CODE['rank_by_h']:
 | 
	
		
			
				|  |  |          t = [gevent.spawn(pool_recall.rov_pool_recall_by_h, size, expire_time),
 | 
	
		
			
				|  |  |               gevent.spawn(pool_recall.flow_pool_recall, size)]
 | 
	
		
			
				|  |  |      else:
 | 
	
	
		
			
				|  | @@ -378,6 +378,7 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
 | 
	
		
			
				|  |  |              flow_pool_P = config_.P
 | 
	
		
			
				|  |  |              ab_code = config_.AB_CODE['initial']
 | 
	
		
			
				|  |  |              expire_time = 24 * 3600
 | 
	
		
			
				|  |  | +            return_count = -1
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  |              ab_exp_code_list = []
 | 
	
		
			
				|  |  |              config_value_dict = {}
 | 
	
	
		
			
				|  | @@ -407,18 +408,25 @@ def video_homepage_recommend(mid, uid, size, app_type, algo_type, client_info, a
 | 
	
		
			
				|  |  |                  flow_pool_P = config_.P
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              # 小时级更新-规则1 实验
 | 
	
		
			
				|  |  | -            if config_.AB_EXP_CODE['rule_rank1'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | -                ab_code = config_.AB_CODE['rank_by_h']
 | 
	
		
			
				|  |  | +            if config_.AB_EXP_CODE['rule_rank1_20'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | +                ab_code = config_.AB_CODE['rank_by_h'][0]
 | 
	
		
			
				|  |  |                  expire_time = 3600
 | 
	
		
			
				|  |  | +                return_count = 20
 | 
	
		
			
				|  |  | +            elif config_.AB_EXP_CODE['rule_rank1_50'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | +                ab_code = config_.AB_CODE['rank_by_h'][1]
 | 
	
		
			
				|  |  | +                expire_time = 3600
 | 
	
		
			
				|  |  | +                return_count = 50
 | 
	
		
			
				|  |  |              else:
 | 
	
		
			
				|  |  |                  ab_code = config_.AB_CODE['initial']
 | 
	
		
			
				|  |  |                  expire_time = 24 * 3600
 | 
	
		
			
				|  |  | +                return_count = -1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          # 简单召回 - 排序 - 兜底
 | 
	
		
			
				|  |  |          rank_result, last_rov_recall_key = video_recommend(mid=mid, uid=uid, app_type=app_type,
 | 
	
		
			
				|  |  |                                                             size=size, top_K=top_K, flow_pool_P=flow_pool_P,
 | 
	
		
			
				|  |  |                                                             algo_type=algo_type, client_info=client_info,
 | 
	
		
			
				|  |  | -                                                           ab_code=ab_code, expire_time=expire_time)
 | 
	
		
			
				|  |  | +                                                           ab_code=ab_code, expire_time=expire_time,
 | 
	
		
			
				|  |  | +                                                           return_count=return_count)
 | 
	
		
			
				|  |  |          # ab-test
 | 
	
		
			
				|  |  |          # result = ab_test_op(rank_result=rank_result,
 | 
	
		
			
				|  |  |          #                     ab_code_list=[config_.AB_CODE['position_insert']],
 | 
	
	
		
			
				|  | @@ -448,6 +456,7 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info):
 | 
	
		
			
				|  |  |          flow_pool_P = config_.P
 | 
	
		
			
				|  |  |          ab_code = config_.AB_CODE['initial']
 | 
	
		
			
				|  |  |          expire_time = 24 * 3600
 | 
	
		
			
				|  |  | +        return_count = -1
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          ab_exp_code_list = []
 | 
	
		
			
				|  |  |          config_value_dict = {}
 | 
	
	
		
			
				|  | @@ -478,18 +487,25 @@ def video_relevant_recommend(video_id, mid, uid, size, app_type, ab_exp_info):
 | 
	
		
			
				|  |  |              flow_pool_P = config_.P
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          # 小时级更新-规则1 实验
 | 
	
		
			
				|  |  | -        if config_.AB_EXP_CODE['rule_rank1'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | -            ab_code = config_.AB_CODE['rank_by_h']
 | 
	
		
			
				|  |  | +        if config_.AB_EXP_CODE['rule_rank1_20'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | +            ab_code = config_.AB_CODE['rank_by_h'][0]
 | 
	
		
			
				|  |  | +            expire_time = 3600
 | 
	
		
			
				|  |  | +            return_count = 20
 | 
	
		
			
				|  |  | +        elif config_.AB_EXP_CODE['rule_rank1_50'] in ab_exp_code_list:
 | 
	
		
			
				|  |  | +            ab_code = config_.AB_CODE['rank_by_h'][1]
 | 
	
		
			
				|  |  |              expire_time = 3600
 | 
	
		
			
				|  |  | +            return_count = 50
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  |              ab_code = config_.AB_CODE['initial']
 | 
	
		
			
				|  |  |              expire_time = 24 * 3600
 | 
	
		
			
				|  |  | +            return_count = -1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # 简单召回 - 排序 - 兜底
 | 
	
		
			
				|  |  |      rank_result, last_rov_recall_key = video_recommend(mid=mid, uid=uid, app_type=app_type,
 | 
	
		
			
				|  |  |                                                         size=size, top_K=top_K, flow_pool_P=flow_pool_P,
 | 
	
		
			
				|  |  |                                                         algo_type='', client_info=None,
 | 
	
		
			
				|  |  | -                                                       ab_code=ab_code, expire_time=expire_time)
 | 
	
		
			
				|  |  | +                                                       ab_code=ab_code, expire_time=expire_time,
 | 
	
		
			
				|  |  | +                                                       return_count=return_count)
 | 
	
		
			
				|  |  |      # ab-test
 | 
	
		
			
				|  |  |      # result = ab_test_op(rank_result=rank_result,
 | 
	
		
			
				|  |  |      #                     ab_code_list=[config_.AB_CODE['position_insert'], config_.AB_CODE['relevant_video_op']],
 |