xiangpei
2024-08-31 7a7acc33c5658643a54c42bfd6f70ed3881a3248
ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -62,14 +62,6 @@
    @Autowired
    private UYErrorTypeCheckService uyErrorTypeCheckService;
    private static final ExecutorService executorService = new ThreadPoolExecutor(8,
            24,
            5000,
            TimeUnit.SECONDS,
            new ArrayBlockingQueue<>(1000),
            new ThreadPoolExecutor.CallerRunsPolicy()
    );
    /**
     * 通过查mongoDB每日一机一档数据获取设备ip
     * 通过设备ip、品牌调用不同api获取osd信息
@@ -94,6 +86,13 @@
        //需要考核的数据
        List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(serialNumbers)) {
            ExecutorService executorService = new ThreadPoolExecutor(8,
                    24,
                    5000,
                    TimeUnit.SECONDS,
                    new ArrayBlockingQueue<>(1000),
                    new ThreadPoolExecutor.CallerRunsPolicy()
            );
            List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers);
            monitors = monitors.stream().filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && !"127.0.0.1".equals(monitor.getIp())).collect(Collectors.toList());
            log.info("处理数据大小{}", monitors.size());
@@ -116,7 +115,6 @@
                    } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) {
                        //TODO:宇视api
                    }
                    log.info("//未知品牌或者api调用失败,挨个执行所有api");
                    //未知品牌或者api调用失败,挨个执行所有api
                    OSDResult osd = tryAllApi(monitor, hkList, dhList, ysList);
                    if (osd != null) {
@@ -126,6 +124,7 @@
                    }
                });
            }
            //不再接收新任务
            executorService.shutdown();
            try {
                // 等待所有任务完成,最多等待10秒(可以根据需要调整)