job_video_processing.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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']
  11. futures = []
  12. start_time = time.time() # 记录开始时间
  13. for redis_task in redis_task_list:
  14. futures.append(executor.submit( process_video_ai, redis_task))
  15. time.sleep(1) # 每秒提交一个任务
  16. wait( futures ) # 等待所有任务完成
  17. end_time = time.time() # 记录结束时间
  18. total_time = end_time - start_time # 计算总耗时
  19. print( f"6个线程完成任务总耗时:{total_time:.2f}秒" )
  20. except Exception as e:
  21. print(f"异常信息{e}")
  22. time.sleep(3)
  23. continue
  24. def process_video_ai(redis_task):
  25. try:
  26. print(f"开始执行任务{redis_task}")
  27. video_processor = VideoProcessing()
  28. video_processor.get_video(redis_task)
  29. print(f"执行完成{redis_task}")
  30. time.sleep(5)
  31. except Exception as e:
  32. print("处理任务时出现异常:", e)
  33. time.sleep(5)
  34. if __name__ == '__main__':
  35. video_ai_task_start()