carry_data_handle.py 1.7 KB

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