1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # -*- 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()
|