liqian há 1 ano atrás
pai
commit
6c230e4456
1 ficheiros alterados com 16 adições e 11 exclusões
  1. 16 11
      flowpool_data_update_with_level_score_ab.py

+ 16 - 11
flowpool_data_update_with_level_score_ab.py

@@ -47,7 +47,7 @@ def get_videos_from_flow_pool(app_type, size=1000):
     return videos
 
 
-def get_videos_remain_view_count(video_info_list):
+def get_videos_remain_view_count(video_info_list, abtest_config_info):
     """
     获取视频在流量池中的剩余可分发数,并存入对应的redis中
     :param app_type: 产品标识 type-int
@@ -58,10 +58,14 @@ def get_videos_remain_view_count(video_info_list):
     if not video_info_list:
         return
 
+    ab_key_list = [ab_key for ab_key in abtest_config_info]
+    print(ab_key_list)
     # 每次请求10个
     for i in range(len(video_info_list)//10 + 1):
         remain_st_time = time.time()
         videos = [{'videoId': info[0], 'flowPool': info[1]} for info in video_info_list[i*10:(i+1)*10]]
+        if len(videos) == 0:
+            return
         request_data = {'videos': videos}
         result = request_post(request_url=config_.GET_REMAIN_VIEW_COUNT_URL,
                               request_data=request_data, timeout=(0.5, 3))
@@ -85,14 +89,15 @@ def get_videos_remain_view_count(video_info_list):
                 redis_helper.del_keys(key_name=key_name)
                 # 从流量召回池移除
                 value = '{}-{}'.format(item['videoId'], item['flowPool'])
-                for type_name in config_.APP_TYPE:
-                    for level in range(1, 7):
-                        flow_pool_key = \
-                            f"{config_.FLOWPOOL_KEY_NAME_PREFIX_SET_LEVEL_SCORE}{config_.APP_TYPE.get(type_name)}:{level}"
-                        redis_helper.remove_value_from_zset(key_name=flow_pool_key, value=(value, ))
-                    quick_flow_pool_key = f"{config_.QUICK_FLOWPOOL_KEY_NAME_PREFIX}{config_.APP_TYPE.get(type_name)}" \
-                                          f":{config_.QUICK_FLOW_POOL_ID}"
-                    redis_helper.remove_value_from_zset(key_name=quick_flow_pool_key, value=(value, ))
+                for ab_key in ab_key_list:
+                    for type_name in config_.APP_TYPE:
+                        for level in range(1, 7):
+                            flow_pool_key = \
+                                f"{config_.FLOWPOOL_KEY_NAME_PREFIX_SET_LEVEL_SCORE}{ab_key}:{config_.APP_TYPE.get(type_name)}:{level}"
+                            redis_helper.remove_value_from_zset(key_name=flow_pool_key, value=(value, ))
+                        quick_flow_pool_key = f"{config_.QUICK_FLOWPOOL_KEY_NAME_PREFIX}{config_.APP_TYPE.get(type_name)}" \
+                                              f":{config_.QUICK_FLOW_POOL_ID}"
+                        redis_helper.remove_value_from_zset(key_name=quick_flow_pool_key, value=(value, ))
 
 
 def get_flow_pool_recommend_config(flow_pool_id):
@@ -316,7 +321,7 @@ def get_data_from_odps(project, sql):
 if __name__ == '__main__':
     st_time = time.time()
     # 为避免第一个app_type获取数据不全,等待1min
-    # time.sleep(40)
+    time.sleep(40)
     app_type_list = [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]
     log_.info('flow pool predict start...')
     # 获取对应流量池id列表
@@ -342,7 +347,7 @@ if __name__ == '__main__':
 
     # 更新剩余分发数
     log_.info(f"video_info_list count = {len(video_info_list)}")
-    get_videos_remain_view_count(video_info_list)
+    get_videos_remain_view_count(video_info_list, abtest_config_info)
     log_.info('flow pool predict end...')
     log_.info(f"expend time = {(time.time() - st_time) * 1000}ms")