|  | @@ -537,6 +537,44 @@ def process_with_app_type(app_type, params, region_code_list, feature_df, now_da
 | 
											
												
													
														|  |      # gevent.joinall(task_list)
 |  |      # gevent.joinall(task_list)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +def copy_data_for_city(region, city_code, data_key, rule_key, now_date, now_h):
 | 
											
												
													
														|  | 
 |  | +    """copy 对应数据到城市对应redis,并做相应屏蔽视频过滤"""
 | 
											
												
													
														|  | 
 |  | +    log_.info(f"city_code = {city_code} start ...")
 | 
											
												
													
														|  | 
 |  | +    redis_helper = RedisHelper()
 | 
											
												
													
														|  | 
 |  | +    key_prefix_list = [
 | 
											
												
													
														|  | 
 |  | +        config_.RECALL_KEY_NAME_PREFIX_REGION_BY_H,  # 地域小时级
 | 
											
												
													
														|  | 
 |  | +        config_.RECALL_KEY_NAME_PREFIX_DUP1_REGION_24H_H,  # 地域相对24h
 | 
											
												
													
														|  | 
 |  | +        config_.RECALL_KEY_NAME_PREFIX_DUP2_REGION_24H_H,  # 不区分地域相对24h
 | 
											
												
													
														|  | 
 |  | +        config_.RECALL_KEY_NAME_PREFIX_DUP3_REGION_24H_H,  # 不区分地域相对24h筛选后
 | 
											
												
													
														|  | 
 |  | +        config_.RECALL_KEY_NAME_PREFIX_DUP_REGION_H,  # rov大列表
 | 
											
												
													
														|  | 
 |  | +    ]
 | 
											
												
													
														|  | 
 |  | +    for key_prefix in key_prefix_list:
 | 
											
												
													
														|  | 
 |  | +        region_key = f"{key_prefix}{region}:{data_key}:{rule_key}:{datetime.datetime.strftime(now_date, '%Y%m%d')}:{now_h}"
 | 
											
												
													
														|  | 
 |  | +        city_key = f"{key_prefix}{city_code}:{data_key}:{rule_key}:{datetime.datetime.strftime(now_date, '%Y%m%d')}:{now_h}"
 | 
											
												
													
														|  | 
 |  | +        if not redis_helper.key_exists(key_name=region_key):
 | 
											
												
													
														|  | 
 |  | +            continue
 | 
											
												
													
														|  | 
 |  | +        region_data = redis_helper.get_all_data_from_zset(key_name=region_key, with_scores=True)
 | 
											
												
													
														|  | 
 |  | +        if not region_data:
 | 
											
												
													
														|  | 
 |  | +            continue
 | 
											
												
													
														|  | 
 |  | +        # 屏蔽视频过滤
 | 
											
												
													
														|  | 
 |  | +        region_video_ids = [int(video_id) for video_id, _ in region_data]
 | 
											
												
													
														|  | 
 |  | +        shield_key_name_list = config_.SHIELD_CONFIG.get(city_code, None)
 | 
											
												
													
														|  | 
 |  | +        if shield_key_name_list is not None:
 | 
											
												
													
														|  | 
 |  | +            filtered_video_ids = filter_shield_video(video_ids=region_video_ids,
 | 
											
												
													
														|  | 
 |  | +                                                     shield_key_name_list=shield_key_name_list)
 | 
											
												
													
														|  | 
 |  | +        else:
 | 
											
												
													
														|  | 
 |  | +            filtered_video_ids = region_video_ids
 | 
											
												
													
														|  | 
 |  | +        city_data = {}
 | 
											
												
													
														|  | 
 |  | +        for video_id, score in region_data:
 | 
											
												
													
														|  | 
 |  | +            if int(video_id) in filtered_video_ids:
 | 
											
												
													
														|  | 
 |  | +                city_data[int(video_id)] = score
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        if len(city_data) > 0:
 | 
											
												
													
														|  | 
 |  | +            redis_helper.add_data_with_zset(key_name=city_key, data=city_data, expire_time=23 * 3600)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    log_.info(f"city_code = {city_code} end!")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  def process_with_param(param, data_params_item, rule_params_item, region_code_list, feature_df, now_date, now_h, rule_rank_h_flag):
 |  |  def process_with_param(param, data_params_item, rule_params_item, region_code_list, feature_df, now_date, now_h, rule_rank_h_flag):
 | 
											
												
													
														|  |      log_.info(f"param = {param} start...")
 |  |      log_.info(f"param = {param} start...")
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -575,6 +613,18 @@ def process_with_param(param, data_params_item, rule_params_item, region_code_li
 | 
											
												
													
														|  |          ]
 |  |          ]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      gevent.joinall(task_list)
 |  |      gevent.joinall(task_list)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    # 特殊城市视频数据准备
 | 
											
												
													
														|  | 
 |  | +    for region, city_list in config_.REGION_CITY_MAPPING.items():
 | 
											
												
													
														|  | 
 |  | +        t = [
 | 
											
												
													
														|  | 
 |  | +            gevent.spawn(
 | 
											
												
													
														|  | 
 |  | +                copy_data_for_city,
 | 
											
												
													
														|  | 
 |  | +                region, city_code, data_key, rule_key, now_date, now_h
 | 
											
												
													
														|  | 
 |  | +            )
 | 
											
												
													
														|  | 
 |  | +            for city_code in city_list
 | 
											
												
													
														|  | 
 |  | +        ]
 | 
											
												
													
														|  | 
 |  | +        gevent.joinall(t)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      log_.info(f"param = {param} end!")
 |  |      log_.info(f"param = {param} end!")
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -713,6 +763,16 @@ def h_rank_bottom(now_date, now_h, rule_params, region_code_list, rule_rank_h_fl
 | 
											
												
													
														|  |                           region_24h_rule_key=region_24h_rule_key, region=region,
 |  |                           region_24h_rule_key=region_24h_rule_key, region=region,
 | 
											
												
													
														|  |                           data_key=data_key, by_24h_rule_key=by_24h_rule_key,
 |  |                           data_key=data_key, by_24h_rule_key=by_24h_rule_key,
 | 
											
												
													
														|  |                           by_48h_rule_key=by_48h_rule_key, rule_rank_h_flag=rule_rank_h_flag)
 |  |                           by_48h_rule_key=by_48h_rule_key, rule_rank_h_flag=rule_rank_h_flag)
 | 
											
												
													
														|  | 
 |  | +        # 特殊城市视频数据准备
 | 
											
												
													
														|  | 
 |  | +        for region, city_list in config_.REGION_CITY_MAPPING.items():
 | 
											
												
													
														|  | 
 |  | +            t = [
 | 
											
												
													
														|  | 
 |  | +                gevent.spawn(
 | 
											
												
													
														|  | 
 |  | +                    copy_data_for_city,
 | 
											
												
													
														|  | 
 |  | +                    region, city_code, data_key, rule_key, now_date, now_h
 | 
											
												
													
														|  | 
 |  | +                )
 | 
											
												
													
														|  | 
 |  | +                for city_code in city_list
 | 
											
												
													
														|  | 
 |  | +            ]
 | 
											
												
													
														|  | 
 |  | +            gevent.joinall(t)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  def h_timer_check():
 |  |  def h_timer_check():
 |