# -*- coding: utf-8 -*- # @ModuleName: bottom_videos_update # @Author: Liqian # @Time: 2022/8/31 19:46 # @Software: PyCharm import traceback import datetime from pool_predict import get_videos_from_flow_pool from my_utils import filter_video_status from db_helper import RedisHelper from my_config import set_config from log import Log config_, _ = set_config() log_ = Log() def get_bottom_videos(): """获取流量池视频作为兜底视频""" now_date = datetime.datetime.today() log_.info(f"now_date = {now_date}") app_type_list = [ config_.APP_TYPE['VLOG'], config_.APP_TYPE['LOVE_LIVE'], config_.APP_TYPE['LONG_VIDEO'], config_.APP_TYPE['SHORT_VIDEO'] ] video_ids = [] for app_type in app_type_list: # 从流量池获取数据 videos = get_videos_from_flow_pool(app_type=app_type) if len(videos) <= 0: continue for video in videos: video_id = int(video['videoId']) if video_id not in video_ids: video_ids.append(video_id) log_.info(f"video_ids count = {len(video_ids)}") filtered_videos = filter_video_status(video_ids) log_.info(f"filtered_videos count = {len(filtered_videos)}") if len(filtered_videos) > 0: # redis数据更新 redis_helper = RedisHelper() redis_helper.del_keys(key_name=config_.BOTTOM2_KEY_NAME) redis_helper.add_data_with_set(key_name=config_.BOTTOM2_KEY_NAME, values=tuple(filtered_videos)) # 移除bottom key的过期时间,将其转换为永久状态 redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME) log_.info('{} update bottom videos success!, count = {}'.format(now_date, len(filtered_videos))) if __name__ == '__main__': get_bottom_videos()