|
@@ -4,6 +4,7 @@ import time
|
|
|
import os
|
|
|
import traceback
|
|
|
import random
|
|
|
+import json
|
|
|
|
|
|
from config import set_config
|
|
|
from utils import request_post, filter_video_status, send_msg_to_feishu, filter_video_status_app, \
|
|
@@ -142,7 +143,7 @@ def online_flow_pool_data_to_redis(app_type, video_ids_set, video_info_data):
|
|
|
expire_time=3600)
|
|
|
|
|
|
|
|
|
-def get_flow_pool_data(app_type, video_info_list):
|
|
|
+def get_flow_pool_data(app_type, video_info_list, flow_pool_id_list):
|
|
|
"""
|
|
|
获取流量池可分发视频,并将结果上传Redis
|
|
|
:param app_type: 产品标识 type-int
|
|
@@ -161,6 +162,10 @@ def get_flow_pool_data(app_type, video_info_list):
|
|
|
log_.info('流量池中视频数:{}'.format(len(videos)))
|
|
|
mapping = {}
|
|
|
for video in videos:
|
|
|
+ flow_pool_id = video['flowPoolId']
|
|
|
+ if int(flow_pool_id) not in flow_pool_id_list:
|
|
|
+ continue
|
|
|
+ # print(f"flow_pool_id: {flow_pool_id}")
|
|
|
video_id = video['videoId']
|
|
|
video_ids.add(video_id)
|
|
|
item_info = {'flowPool': video['flowPool'], 'level': video['level']}
|
|
@@ -168,6 +173,7 @@ def get_flow_pool_data(app_type, video_info_list):
|
|
|
mapping[video_id].append(item_info)
|
|
|
else:
|
|
|
mapping[video_id] = [item_info]
|
|
|
+ log_.info(f"需更新流量池视频数: {len(video_ids)}")
|
|
|
|
|
|
# 对视频状态进行过滤
|
|
|
if app_type == config_.APP_TYPE['APP']:
|
|
@@ -278,6 +284,14 @@ if __name__ == '__main__':
|
|
|
time.sleep(60)
|
|
|
app_type_list = [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]
|
|
|
log_.info('flow pool predict start...')
|
|
|
+ # 获取对应流量池id列表
|
|
|
+ redis_helper = RedisHelper()
|
|
|
+ flow_pool_abtest_config = redis_helper.get_data_from_redis(key_name=config_.FLOWPOOL_ABTEST_KEY_NAME)
|
|
|
+ if flow_pool_abtest_config is not None:
|
|
|
+ flow_pool_abtest_config = json.loads(flow_pool_abtest_config)
|
|
|
+ else:
|
|
|
+ flow_pool_abtest_config = {}
|
|
|
+ flow_pool_id_list = flow_pool_abtest_config.get('experimental_flow_set_level', [])
|
|
|
video_info_list = []
|
|
|
for app_name, app_type in config_.APP_TYPE.items():
|
|
|
log_.info('{} predict start...'.format(app_name))
|
|
@@ -286,7 +300,8 @@ if __name__ == '__main__':
|
|
|
elif app_type == config_.APP_TYPE['ZUI_JING_QI']:
|
|
|
continue
|
|
|
else:
|
|
|
- video_info_list = get_flow_pool_data(app_type=app_type, video_info_list=video_info_list)
|
|
|
+ video_info_list = get_flow_pool_data(app_type=app_type, video_info_list=video_info_list,
|
|
|
+ flow_pool_id_list=flow_pool_id_list)
|
|
|
log_.info('{} predict end...'.format(app_name))
|
|
|
|
|
|
# 更新剩余分发数
|