import datetime import traceback import datetime from config import set_config from log import Log from utils import execute_sql_from_odps from db_helper import RedisHelper config_, _ = set_config() log_ = Log() redis_helper = RedisHelper() def get_benshanzhufu_videos(): """获取本山祝福视频并存入redis""" try: # 获取本山祝福视频 sql = f"SELECT videoid FROM {config_.PROJECT_BENSHAN_ZHUFU}.{config_.TABLE_BENSHAN_ZHUFU};" records = execute_sql_from_odps(project=config_.PROJECT_BENSHAN_ZHUFU, sql=sql) video_id_list = [] with records.open_reader() as reader: for record in reader: video_id = int(record['videoid']) video_id_list.append(video_id) log_.info(f"benshanzhufu videos count = {len(video_id_list)}") # 存入redis if len(video_id_list) > 0: redis_helper.del_keys(key_name=config_.BENSHAN_ZHUFU_KEY_NAME) redis_helper.add_data_with_set(key_name=config_.BENSHAN_ZHUFU_KEY_NAME, values=video_id_list, expire_time=25 * 3600) except Exception as e: log_.error(traceback.format_exc()) def get_xng_videos(): """获取小年糕视频并存入redis""" try: # 获取小年糕视频 sql = f"SELECT videoid FROM {config_.PROJECT_XNG}.{config_.TABLE_XNG};" records = execute_sql_from_odps(project=config_.PROJECT_XNG, sql=sql) video_id_list = [] with records.open_reader() as reader: for record in reader: video_id = int(record['videoid']) video_id_list.append(video_id) log_.info(f"xng videos count = {len(video_id_list)}") # 存入redis if len(video_id_list) > 0: redis_helper.del_keys(key_name=config_.XNG_KEY_NAME) redis_helper.add_data_with_set(key_name=config_.XNG_KEY_NAME, values=video_id_list, expire_time=25 * 3600) except Exception as e: log_.error(traceback.format_exc()) def get_special_area_limit_videos(): """获取特殊地域屏蔽视频并存入redis""" try: # 获取特殊地域屏蔽视频 sql = f"SELECT videoid FROM {config_.PROJECT_SPECIAL_AREA_LIMIT}.{config_.TABLE_SPECIAL_AREA_LIMIT};" records = execute_sql_from_odps(project=config_.PROJECT_SPECIAL_AREA_LIMIT, sql=sql) video_id_list = [] with records.open_reader() as reader: for record in reader: video_id = int(record['videoid']) video_id_list.append(video_id) log_.info(f"special area limit videos count = {len(video_id_list)}") # 存入redis if len(video_id_list) > 0: redis_helper.del_keys(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME) redis_helper.add_data_with_set(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME, values=video_id_list, expire_time=25 * 3600) except Exception as e: log_.error(traceback.format_exc()) def get_political_videos(): """获取涉政视频并存入redis""" try: # 获取涉政视频 sql = f"SELECT videoid FROM {config_.PROJECT_POLITICAL_VIDEOS}.{config_.TABLE_POLITICAL_VIDEOS};" records = execute_sql_from_odps(project=config_.PROJECT_POLITICAL_VIDEOS, sql=sql) video_id_list = [] with records.open_reader() as reader: for record in reader: video_id = int(record['videoid']) video_id_list.append(video_id) log_.info(f"political videos count = {len(video_id_list)}") # 存入redis if len(video_id_list) > 0: redis_helper.del_keys(key_name=config_.POLITICAL_VIDEOS_KEY_NAME) redis_helper.add_data_with_set(key_name=config_.POLITICAL_VIDEOS_KEY_NAME, values=video_id_list, expire_time=25 * 3600) except Exception as e: log_.error(traceback.format_exc()) def main(): now_h = datetime.datetime.now().hour if now_h == 4: get_benshanzhufu_videos() get_xng_videos() get_special_area_limit_videos() get_political_videos() if __name__ == '__main__': main()