job_video_processing.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. redis_task_list = ['task:video_ai_top', 'task:video_ai_recommend']
  9. # 任务索引
  10. task_index = 0
  11. while True:
  12. try:
  13. # 提交任务
  14. executor.submit( process_video_ai, redis_task_list[task_index] )
  15. task_index += 1
  16. if task_index >= len( redis_task_list ):
  17. task_index = 0 # 重置索引
  18. time.sleep( 1 ) # 每秒提交一个任务
  19. except Exception as e:
  20. print( f"异常信息: {e}" )
  21. time.sleep( 3 ) # 等待3秒后重试
  22. continue
  23. def process_video_ai(redis_task):
  24. try:
  25. print(f"开始执行任务{redis_task}")
  26. video_processor = VideoProcessing()
  27. video_processor.get_video(redis_task)
  28. print(f"执行完成{redis_task}")
  29. time.sleep(5)
  30. except Exception as e:
  31. print("处理任务时出现异常:", e)
  32. time.sleep(5)
  33. if __name__ == '__main__':
  34. video_ai_task_start()