diff --git a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java index 2140d901..716e8c2c 100644 --- a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java +++ b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java @@ -46,11 +46,11 @@ public class TaskMagicDynamicRegistry extends AbstractMagicDynamicRegistry mappingNode) { TaskInfo info = mappingNode.getEntity(); - if(taskScheduler != null){ + if (taskScheduler != null) { CronTask cronTask = new CronTask(() -> { TaskInfo entity = mappingNode.getEntity(); String scriptName = MagicConfiguration.getMagicResourceService().getScriptName(entity); - if(entity.isEnabled()){ + if (entity.isEnabled()) { try { logger.info("定时任务:[{}]开始执行", scriptName); MagicScriptContext magicScriptContext = new MagicScriptContext(); @@ -65,8 +65,6 @@ public class TaskMagicDynamicRegistry extends AbstractMagicDynamicRegistry mappingNode) { + if (taskScheduler == null) { + return; + } TaskInfo info = mappingNode.getEntity(); logger.debug("取消注册定时任务:[{}, {}, {}]", info.getName(), info.getPath(), info.getCron()); ScheduledFuture scheduledFuture = (ScheduledFuture) mappingNode.getMappingData(); - if(scheduledFuture != null){ + if (scheduledFuture != null) { try { scheduledFuture.cancel(true); } catch (Exception e) { diff --git a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicAPITaskConfiguration.java b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicAPITaskConfiguration.java index 7967011c..f0dbe60e 100644 --- a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicAPITaskConfiguration.java +++ b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicAPITaskConfiguration.java @@ -32,14 +32,17 @@ public class MagicAPITaskConfiguration implements MagicPluginConfiguration { @ConditionalOnMissingBean public TaskMagicDynamicRegistry taskMagicDynamicRegistry(TaskInfoMagicResourceStorage taskInfoMagicResourceStorage) { MagicTaskConfig.Shutdown shutdown = config.getShutdown(); - ThreadPoolTaskScheduler poolTaskScheduler = new ThreadPoolTaskScheduler(); - poolTaskScheduler.setPoolSize(config.getPool().getSize()); - poolTaskScheduler.setWaitForTasksToCompleteOnShutdown(shutdown.isAwaitTermination()); - if(shutdown.getAwaitTerminationPeriod() != null){ - poolTaskScheduler.setAwaitTerminationSeconds((int) shutdown.getAwaitTerminationPeriod().getSeconds()); + ThreadPoolTaskScheduler poolTaskScheduler = null; + if(config.isEnable()){ + poolTaskScheduler = new ThreadPoolTaskScheduler(); + poolTaskScheduler.setPoolSize(config.getPool().getSize()); + poolTaskScheduler.setWaitForTasksToCompleteOnShutdown(shutdown.isAwaitTermination()); + if(shutdown.getAwaitTerminationPeriod() != null){ + poolTaskScheduler.setAwaitTerminationSeconds((int) shutdown.getAwaitTerminationPeriod().getSeconds()); + } + poolTaskScheduler.setThreadNamePrefix(config.getThreadNamePrefix()); + poolTaskScheduler.initialize(); } - poolTaskScheduler.setThreadNamePrefix(config.getThreadNamePrefix()); - poolTaskScheduler.initialize(); return new TaskMagicDynamicRegistry(taskInfoMagicResourceStorage, poolTaskScheduler); } diff --git a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicTaskConfig.java b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicTaskConfig.java index 5470f40c..45f19715 100644 --- a/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicTaskConfig.java +++ b/magic-api-plugins/magic-api-plugin-task/src/main/java/org/ssssssss/magicapi/task/starter/MagicTaskConfig.java @@ -8,6 +8,11 @@ import java.time.Duration; @ConfigurationProperties("magic-api.task") public class MagicTaskConfig { + /** + * 是否启用定时任务 + */ + private boolean enable = true; + /** * 线程池相关配置 */ @@ -39,6 +44,14 @@ public class MagicTaskConfig { this.threadNamePrefix = threadNamePrefix; } + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } + public static class Pool { /**