1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from concurrent.futures import ThreadPoolExecutor, as_completed

def handle(self, start, end):
tasks = {
TypeId.campaign.value: (self.get_campaign_report, (start, end), {}) # 添加空的关键字参数字典
}
results = []
with ThreadPoolExecutor(max_workers=5) as executor:
# 提交所有任务到线程池
futures = []
for task, args, kwargs in tasks.values(): # 现在解包三元组
future = executor.submit(task, *args, **kwargs)
futures.append(future)

# 处理完成的任务(带异常处理)
for future in as_completed(futures):
try:
result = future.result()
results.append(result)
print(f"任务成功完成,结果: {result}") # 添加调试输出
except Exception as e:
print(f"任务执行出错: {e}") # 捕获并打印异常
results.append({}) # 或者添加错误信息到结果
return dict(zip(tasks.keys(), results))