|
@@ -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)
|