소스 검색

启动脚本优化

zhangyong 10 달 전
부모
커밋
2d0ab0cbf6
1개의 변경된 파일11개의 추가작업 그리고 12개의 파일을 삭제
  1. 11 12
      agc_job.py

+ 11 - 12
agc_job.py

@@ -7,13 +7,16 @@ import time
 import threading
 from common import Material, Common, Feishu
 from video_agc.agc_video_method import AgcVidoe
+
 # 控制读写速度的参数
 MAX_BPS = 1 * 1024 * 1024  # 120MB/s
-MAX_WORKERS = os.cpu_count() * 2  # 线程池最大工作线程数量
-READ_WRITE_CHUNK_SIZE = 1024 * 1024  # 每次读写的块大小 (1MB)
+MAX_WORKERS = os.cpu_count() # 线程池最大工作线程数量
+READ_WRITE_CHUNK_SIZE = 512 * 1024  # 每次读写的块大小 (1MB)
 SLEEP_INTERVAL = READ_WRITE_CHUNK_SIZE / MAX_BPS  # 控制每次读写的延迟时间
+
 # 全局锁,用于同步读写操作
 lock = threading.Lock()
+
 # 记录今天已经返回的用户名
 gs_today = []
 cg_today = []
@@ -46,7 +49,6 @@ def gs_video_start(user_data):
             if all_count >= int(zd_count):
                 Feishu.bot('recommend', 'AGC完成通知', '今日脚本跟随视频拼接任务完成啦~', user_data_mark.split("-")[0], mark_name)
 
-
 def cg_video_start(user_data):
     global cg_today
     user_data_mark = user_data["mark"]
@@ -90,8 +92,6 @@ def controlled_io_operation(platform, data):
     elif platform == "bk":
         bk_video_start(data)
 
-
-
 def video_start(platform):
     print("开始执行生成视频脚本.")
     if platform == "cg":
@@ -102,7 +102,8 @@ def video_start(platform):
         data = Material.feishu_bk_list()
     with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
         futures = {executor.submit(controlled_io_operation, platform, user_data): user_data for user_data in data}
-        for future in concurrent.futures.as_completed(futures):
+        timeout = 20 * 60  # 设置超时时间为20分钟
+        for future in concurrent.futures.as_completed(futures, timeout=timeout):
             try:
                 future.result()
                 print("处理结果: 成功")
@@ -124,19 +125,17 @@ def bk_usernames_today():
 
 # 定时任务设置
 schedule.every().day.at("00:10").do(gs_usernames_today)
-
 schedule.every().day.at("04:10").do(cg_usernames_today)
-
 schedule.every().day.at("19:10").do(bk_usernames_today)
 
 schedule.every(10).minutes.do(video_start, "cg")
 schedule.every(10).minutes.do(video_start, "gs")
 schedule.every(10).minutes.do(video_start, "bk")
 
-
-
-
 if __name__ == "__main__":
     while True:
-        schedule.run_pending()
+        try:
+            schedule.run_pending()
+        except Exception as e:
+            print("执行调度任务时出现异常:", e)
         time.sleep(1)