From 332626150f2a4972ac55e051241a3427913430b3 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Wed, 14 Jan 2026 18:09:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=BD=BF=E7=94=A8=E8=99=9A=E6=8B=9F=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../genersoft/iot/vmp/conf/DynamicTask.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java index 3a1fb917a..44b82488b 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java @@ -2,11 +2,11 @@ package com.genersoft.iot.vmp.conf; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.stereotype.Component; -import jakarta.annotation.PostConstruct; import java.time.Instant; import java.util.Date; import java.util.Map; @@ -23,20 +23,12 @@ import java.util.concurrent.TimeUnit; @Component public class DynamicTask { - private ThreadPoolTaskScheduler threadPoolTaskScheduler; + @Autowired + private TaskScheduler taskScheduler; private final Map> futureMap = new ConcurrentHashMap<>(); private final Map runnableMap = new ConcurrentHashMap<>(); - @PostConstruct - public void DynamicTask() { - threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); - threadPoolTaskScheduler.setPoolSize(300); - threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true); - threadPoolTaskScheduler.setAwaitTerminationSeconds(10); - threadPoolTaskScheduler.setThreadNamePrefix("dynamicTask-"); - threadPoolTaskScheduler.initialize(); - } /** * 循环执行的任务 @@ -60,7 +52,7 @@ public class DynamicTask { } // scheduleWithFixedDelay 必须等待上一个任务结束才开始计时period, cycleForCatalog表示执行的间隔 - future = threadPoolTaskScheduler.scheduleAtFixedRate(task, new Date(System.currentTimeMillis() + cycleForCatalog), cycleForCatalog); + future = taskScheduler.scheduleAtFixedRate(task, new Date(System.currentTimeMillis() + cycleForCatalog), cycleForCatalog); if (future != null){ futureMap.put(key, future); runnableMap.put(key, task); @@ -96,7 +88,7 @@ public class DynamicTask { } } // scheduleWithFixedDelay 必须等待上一个任务结束才开始计时period, cycleForCatalog表示执行的间隔 - future = threadPoolTaskScheduler.schedule(task, startInstant); + future = taskScheduler.schedule(task, startInstant); if (future != null){ futureMap.put(key, future); runnableMap.put(key, task);