job_video_processing.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import time
  2. from concurrent.futures import ThreadPoolExecutor, wait
  3. from common.redis import install_video_data
  4. from video_processing.video_processing import VideoProcessing
  5. max_workers = 10
  6. def video_ai_task_start():
  7. with ThreadPoolExecutor( max_workers=max_workers) as executor:
  8. while True:
  9. try:
  10. redis_task_list = ['task:video_ai_top', 'task:video_ai_recommend'] * 3
  11. futures = []
  12. for redis_task in redis_task_list:
  13. futures.append(executor.submit( process_video_ai, redis_task))
  14. time.sleep(1) # 每秒提交一个任务
  15. wait( futures ) # 等待所有任务完成
  16. except Exception as e:
  17. print(f"异常信息{e}")
  18. time.sleep(3)
  19. continue
  20. def process_video_ai(redis_task):
  21. try:
  22. print(f"开始执行任务{redis_task}")
  23. video_processor = VideoProcessing()
  24. video_processor.get_video(redis_task)
  25. print(f"执行完成{redis_task}")
  26. time.sleep(5)
  27. except Exception as e:
  28. print("处理任务时出现异常:", e)
  29. time.sleep(5)
  30. if __name__ == '__main__':
  31. video_ai_task_start()