import json import os import time import uuid import schedule from loguru import logger from carry_video.nrfx_gz_carry_video import NrfxGzCarryViode from common import AliyunLogger from common.redis import get_carry_data, in_carry_video_data ENV = os.getenv('ENV', 'dev') NAME = os.getenv('NAME') REDIS_NAME = os.getenv('REDIS_NAME') CACHE_DIR = '/app/cache/' if ENV == 'prod' else os.path.expanduser('~/Downloads/') def nrfx_video_task_start(): logger.info(f"[+] {REDIS_NAME}任务开始redis获取") data = get_carry_data("task:carry_redis_by_nrfx") if not data: return try: logger.info(f"[+] {NAME}任务开始,数据为{data}") uid = str(uuid.uuid4()) file_path = os.path.join(CACHE_DIR, uid) nrfx_carry_video = NrfxGzCarryViode() mark = nrfx_carry_video.main(json.loads(data), file_path, "AIzaSyB2kjF2-S2B5cJiosx_LpApd227w33CVvs") print(f"返回用户名: {mark}") logger.info(f"[+] {NAME}处理一条成功") for filename in os.listdir(CACHE_DIR): # 检查文件名是否包含关键字 if uid in filename: file_path = os.path.join(CACHE_DIR, filename) try: # 删除文件 os.remove(file_path) logger.info(f"已删除文件: {file_path}") except Exception as e: logger.error(f"删除文件时出错: {file_path}, 错误: {e}") return except Exception as e: data = json.loads(data) in_carry_video_data("task:carry_redis_by_nrfx", json.dumps(data, ensure_ascii=False, indent=4)) AliyunLogger.logging(data["type"],"片尾引导", data["channel"], data["videoid"], "视频处理失败,失败信息{e}", "3003", str(data)) logger.error(f"[+] {data}处理失败,失败信息{e}") return def schedule_tasks(): schedule.every(4).minutes.do(nrfx_video_task_start) if __name__ == '__main__': schedule_tasks() # 调用任务调度函数 while True: schedule.run_pending() time.sleep(1) # 每秒钟检查一次 # nrfx_video_task_start()