ProbeQueryExecutor

 1     package com.-.it.regioc.task;
 2 
 3     import com.alibaba.fastjson.JSONObject;
 4     import lombok.extern.slf4j.Slf4j;
 5     import java.util.ArrayList;
 6     import java.util.List;
 7     import java.util.concurrent.ArrayBlockingQueue;
 8     import java.util.concurrent.Future;
 9     import java.util.concurrent.ThreadPoolExecutor;
10     import java.util.concurrent.TimeUnit;
11 
12     @Slf4j
13     public class ProbeQueryExecutor {
14         private static final ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 12, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(150));
15 
16         /**
17          * 提交任务
18          */
19         public static List<JSONObject> submitTask(List<ProbeQueryTask> tasks) {
20             ArrayList<Future<JSONObject>> futures = new ArrayList<>();
21             for (ProbeQueryTask task : tasks) {
22                 Future<JSONObject> future = executor.submit(task);
23                 futures.add(future);
24             }
25             List<JSONObject> results = new ArrayList<>();
26             for (int i = 0; i < futures.size(); i++) {
27                 try {
28                     JSONObject result = futures.get(i).get();
29                     results.add(result);
30                 } catch (Exception e) {
31                     log.error("线程池查询探针异常:{}", tasks.get(i).getParam().toString(), e);
32                 }
33             }
34             return results;
35         }
36     }
posted @ 2022-10-31 21:06  MING5135  阅读(21)  评论(0)    收藏  举报