|
@@ -76,7 +76,6 @@ class getVideo:
|
|
if len(task_data) == 0:
|
|
if len(task_data) == 0:
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'今日任务为空,请关注', name)
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'今日任务为空,请关注', name)
|
|
return mark
|
|
return mark
|
|
-
|
|
|
|
lock = threading.Lock()
|
|
lock = threading.Lock()
|
|
def process_task(task):
|
|
def process_task(task):
|
|
task_mark = task["task_mark"] # 任务标示
|
|
task_mark = task["task_mark"] # 任务标示
|
|
@@ -216,15 +215,26 @@ class getVideo:
|
|
cls.remove_files(video_path_url)
|
|
cls.remove_files(video_path_url)
|
|
Common.logger("warning").warning(f"{name}的{task_mark}任务处理失败:{e}\n")
|
|
Common.logger("warning").warning(f"{name}的{task_mark}任务处理失败:{e}\n")
|
|
|
|
|
|
- with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
|
|
|
|
- futures = {executor.submit(process_task, task): task for task in task_data}
|
|
|
|
- for future in concurrent.futures.as_completed(futures):
|
|
|
|
- task = futures[future]
|
|
|
|
- try:
|
|
|
|
- future.result()
|
|
|
|
- print(f"Task {task['task_mark']} 完成")
|
|
|
|
- except Exception as exc:
|
|
|
|
- print(f"Task {task['task_mark']} 异常信息: {exc}")
|
|
|
|
|
|
+ batch_size = 3
|
|
|
|
+ with concurrent.futures.ThreadPoolExecutor(max_workers=batch_size) as executor:
|
|
|
|
+ index = 0
|
|
|
|
+ while index < len(task_data):
|
|
|
|
+ # 计算剩余的任务数量
|
|
|
|
+ remaining_tasks = len(task_data) - index
|
|
|
|
+ # 当前批次大小为剩余任务数量和批次大小中较小的一个
|
|
|
|
+ current_batch_size = min(batch_size, remaining_tasks)
|
|
|
|
+ # 获取当前批次的任务
|
|
|
|
+ current_batch = task_data[index:index + batch_size]
|
|
|
|
+ futures = {executor.submit(process_task, task): task for task in current_batch}
|
|
|
|
+ for future in concurrent.futures.as_completed(futures):
|
|
|
|
+ task = futures[future]
|
|
|
|
+ try:
|
|
|
|
+ future.result()
|
|
|
|
+ print(f"Task {task['task_mark']} 完成")
|
|
|
|
+ except Exception as exc:
|
|
|
|
+ print(f"Task {task['task_mark']} 异常信息: {exc}")
|
|
|
|
+ # 移动到下一批任务
|
|
|
|
+ index += current_batch_size
|
|
|
|
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'你的任务全部完成,请关注!!!!!', name)
|
|
Feishu.bot(mark, '机器自动改造消息通知', f'你的任务全部完成,请关注!!!!!', name)
|
|
return mark
|
|
return mark
|