carry_gz_nrfx_data_handle.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import json
  2. import os
  3. import time
  4. import uuid
  5. import schedule
  6. from loguru import logger
  7. from carry_video.nrfx_gz_carry_video import NrfxGzCarryViode
  8. from common import AliyunLogger
  9. from common.redis import get_carry_data, in_carry_video_data
  10. ENV = os.getenv('ENV', 'dev')
  11. NAME = os.getenv('NAME')
  12. REDIS_NAME = os.getenv('REDIS_NAME')
  13. CACHE_DIR = '/app/cache/' if ENV == 'prod' else os.path.expanduser('~/Downloads/')
  14. def nrfx_video_task_start():
  15. logger.info(f"[+] {REDIS_NAME}任务开始redis获取")
  16. data = get_carry_data("task:carry_redis_by_nrfx")
  17. if not data:
  18. return
  19. try:
  20. logger.info(f"[+] {NAME}任务开始,数据为{data}")
  21. uid = str(uuid.uuid4())
  22. file_path = os.path.join(CACHE_DIR, uid)
  23. nrfx_carry_video = NrfxGzCarryViode()
  24. mark = nrfx_carry_video.main(json.loads(data), file_path, "AIzaSyB2kjF2-S2B5cJiosx_LpApd227w33CVvs")
  25. print(f"返回用户名: {mark}")
  26. logger.info(f"[+] {NAME}处理一条成功")
  27. for filename in os.listdir(CACHE_DIR):
  28. # 检查文件名是否包含关键字
  29. if uid in filename:
  30. file_path = os.path.join(CACHE_DIR, filename)
  31. try:
  32. # 删除文件
  33. os.remove(file_path)
  34. logger.info(f"已删除文件: {file_path}")
  35. except Exception as e:
  36. logger.error(f"删除文件时出错: {file_path}, 错误: {e}")
  37. return
  38. except Exception as e:
  39. data = json.loads(data)
  40. in_carry_video_data("task:carry_redis_by_nrfx", json.dumps(data, ensure_ascii=False, indent=4))
  41. AliyunLogger.logging(data["type"],"片尾引导", data["channel"], data["videoid"], "视频处理失败,失败信息{e}", "3003", str(data))
  42. logger.error(f"[+] {data}处理失败,失败信息{e}")
  43. return
  44. def schedule_tasks():
  45. schedule.every(4).minutes.do(nrfx_video_task_start)
  46. if __name__ == '__main__':
  47. schedule_tasks() # 调用任务调度函数
  48. while True:
  49. schedule.run_pending()
  50. time.sleep(1) # 每秒钟检查一次
  51. # nrfx_video_task_start()