# -*- coding: utf-8 -*-
# @ModuleName: old_video_recall
# @Author: Liqian
# @Time: 2022/4/25 下午3:33
# @Software: PyCharm
import pandas as pd
from datetime import datetime
from utils import get_data_from_odps, filter_video_status
from db_helper import RedisHelper
from config import set_config
from log import Log
config_, env = set_config()
log_ = Log()
def get_old_videos():
"""获取老旧视频"""
now_date = datetime.strftime(datetime.today(), '%Y%m%d')
log_.info(f"now_date = {now_date}")
project = config_.OLD_VIDEOS_PROJECT
table = config_.OLD_VIDEOS_TABLE
records = get_data_from_odps(project=project, table=table, date=now_date)
video_ids = [int(record['videoid']) for record in records]
log_.info(f'videos count = {len(video_ids)}')
if len(video_ids) > 0:
# 对视频状态进行过滤
filtered_videos = filter_video_status(list(video_ids))
log_.info('filter videos status finished, filtered_videos count={}'.format(len(filtered_videos)))
if not filtered_videos:
log_.info('视频状态不符合分发')
return None
# 上传数据到redis
key_name = f'{config_.RECALL_KEY_NAME_PREFIX_OLD_VIDEOS}{now_date}'
redis_helper = RedisHelper()
# 如果key已存在,删除key
if redis_helper.key_exists(key_name):
redis_helper.del_keys(key_name)
# 写入redis
redis_helper.add_data_with_set(key_name=key_name, values=filtered_videos, expire_time=24 * 3600)
log_.info('data to redis finished!')
else:
log_.info(f'no data!')
if __name__ == '__main__':
get_old_videos()