old_video_recall.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding: utf-8 -*-
  2. # @ModuleName: old_video_recall
  3. # @Author: Liqian
  4. # @Time: 2022/4/25 下午3:33
  5. # @Software: PyCharm
  6. import pandas as pd
  7. from datetime import datetime
  8. from utils import get_data_from_odps, filter_video_status
  9. from db_helper import RedisHelper
  10. from config import set_config
  11. from log import Log
  12. config_, env = set_config()
  13. log_ = Log()
  14. def get_old_videos():
  15. """获取老旧视频"""
  16. now_date = datetime.strftime(datetime.today(), '%Y%m%d')
  17. log_.info(f"now_date = {now_date}")
  18. project = config_.OLD_VIDEOS_PROJECT
  19. table = config_.OLD_VIDEOS_TABLE
  20. records = get_data_from_odps(project=project, table=table, date=now_date)
  21. video_ids = [int(record['videoid']) for record in records]
  22. log_.info(f'videos count = {len(video_ids)}')
  23. if len(video_ids) > 0:
  24. # 对视频状态进行过滤
  25. filtered_videos = filter_video_status(list(video_ids))
  26. log_.info('filter videos status finished, filtered_videos count={}'.format(len(filtered_videos)))
  27. if not filtered_videos:
  28. log_.info('视频状态不符合分发')
  29. return None
  30. # 上传数据到redis
  31. key_name = f'{config_.RECALL_KEY_NAME_PREFIX_OLD_VIDEOS}{now_date}'
  32. redis_helper = RedisHelper()
  33. # 如果key已存在,删除key
  34. if redis_helper.key_exists(key_name):
  35. redis_helper.del_keys(key_name)
  36. # 写入redis
  37. redis_helper.add_data_with_set(key_name=key_name, values=filtered_videos, expire_time=24 * 3600)
  38. log_.info('data to redis finished!')
  39. else:
  40. log_.info(f'no data!')
  41. if __name__ == '__main__':
  42. get_old_videos()