|
@@ -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")
|
|
|
|