zhangyong преди 6 месеца
родител
ревизия
4b1ae51541
променени са 1 файла, в които са добавени 22 реда и са изтрити 19 реда
  1. 22 19
      job_video_processing.py

+ 22 - 19
job_video_processing.py

@@ -1,23 +1,22 @@
 import time
-from concurrent.futures import ThreadPoolExecutor, wait
-from common.redis import install_video_data
+from concurrent.futures import ThreadPoolExecutor
 from video_processing.video_processing import VideoProcessing
 
+max_workers = 10  # 最大线程数
+
 
 def video_ai_task_start():
-    max_workers = 10  # 最大线程数
     redis_task_list = ['task:video_ai_top', 'task:video_ai_recommend']
-    # 创建线程池
-    with ThreadPoolExecutor( max_workers=max_workers ) as executor:
-        futures = []
-        task_index = 0
+    futures = []  # 用来存储任务的 Future 对象
+    task_index = 0
 
+    with ThreadPoolExecutor( max_workers=max_workers ) as executor:
         while True:
-            # 检查已经完成的任务
             futures = [f for f in futures if not f.done()]
+
             if len( futures ) < max_workers:
                 try:
-                    # 提交任务并将 Future 对象添加到列表
+                    # 提交任务
                     future = executor.submit( process_video_ai, redis_task_list[task_index] )
                     futures.append( future )
 
@@ -25,22 +24,26 @@ def video_ai_task_start():
                     if task_index >= len( redis_task_list ):
                         task_index = 0  # 重置索引
 
-                    time.sleep( 1 )  # 每秒提交一个任务
+                    time.sleep( 1 )
 
                 except Exception as e:
                     print( f"异常信息: {e}" )
-                    time.sleep( 3 )  # 等待3秒后重试
+                    time.sleep( 1 )
+            else:
+                time.sleep( 5)  # 暂停1秒,避免忙等待
+
 
 def process_video_ai(redis_task):
     try:
-
-        print(f"开始执行任务{redis_task}")
+        print( f"开始执行任务: {redis_task}" )
         video_processor = VideoProcessing()
-        video_processor.get_video(redis_task)
-        print(f"执行完成{redis_task}")
-        time.sleep(5)
+        video_processor.get_video( redis_task )
+        print( f"执行完成: {redis_task}" )
+        time.sleep( 5 )  # 模拟处理时间
     except Exception as e:
-        print("处理任务时出现异常:", e)
-        time.sleep(5)
+        print( f"处理任务时出现异常: {e}" )
+        time.sleep( 5 )  # 出现异常时,等待5秒再处理
+
+
 if __name__ == '__main__':
-    video_ai_task_start()
+    video_ai_task_start()