From 35d5a4b8a27361bf1369947a470022606ee8c883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E8=88=AA=E8=80=81=E9=BD=90?= <280645618@qq.com> Date: Mon, 29 Dec 2025 16:45:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=B0=83=E5=BA=A6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/qihangerp/oms/OmsApi.java | 4 +- .../cn/qihangerp/oms/task/CronTaskLoader.java | 45 +++++++++++++++++++ .../sys/controller/SysTaskController.java | 6 +++ 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 api/oms-api/src/main/java/cn/qihangerp/oms/task/CronTaskLoader.java diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/OmsApi.java b/api/oms-api/src/main/java/cn/qihangerp/oms/OmsApi.java index 4710ddd0..6e00eabe 100644 --- a/api/oms-api/src/main/java/cn/qihangerp/oms/OmsApi.java +++ b/api/oms-api/src/main/java/cn/qihangerp/oms/OmsApi.java @@ -9,12 +9,12 @@ import org.springframework.context.annotation.ComponentScan; //@EnableDiscoveryClient //@MapperScan("com.qihang.oms.mapper") -@ComponentScan(basePackages={"cn.qihangerp.open","cn.qihangerp"}) +@ComponentScan(basePackages={"cn.qihangerp.oms","cn.qihangerp"}) @SpringBootApplication public class OmsApi { public static void main( String[] args ) { - System.out.println( "Hello open-api!" ); + System.out.println( "Hello oms-api!" ); SpringApplication.run(OmsApi.class, args); } diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/task/CronTaskLoader.java b/api/oms-api/src/main/java/cn/qihangerp/oms/task/CronTaskLoader.java new file mode 100644 index 00000000..36f8f001 --- /dev/null +++ b/api/oms-api/src/main/java/cn/qihangerp/oms/task/CronTaskLoader.java @@ -0,0 +1,45 @@ +package cn.qihangerp.oms.task; + +import cn.qihangerp.common.task.SchedulingConfiguration; +import lombok.extern.java.Log; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.concurrent.atomic.AtomicBoolean; +@Log +@Component +public class CronTaskLoader implements ApplicationRunner { +// private static final Logger log = LoggerFactory.getLogger(CronTaskLoader.class); + private final SchedulingConfiguration schedulingConfiguration; + private final AtomicBoolean appStarted = new AtomicBoolean(false); + private final AtomicBoolean initializing = new AtomicBoolean(false); + + public CronTaskLoader(SchedulingConfiguration schedulingConfiguration) { + this.schedulingConfiguration = schedulingConfiguration; + } + + /** + * 定时任务配置刷新(10分钟刷新一次) + */ + @Scheduled(fixedDelay = 600000) + public void cronTaskConfigRefresh() { + if (appStarted.get() && initializing.compareAndSet(false, true)) { + log.info("定时调度任务动态加载开始>>>>>>"); + try { + schedulingConfiguration.refresh(); + } finally { + initializing.set(false); + } +// log.info("定时调度任务动态加载结束<<<<<<"); + } + } + + @Override + public void run(ApplicationArguments args) { + if (appStarted.compareAndSet(false, true)) { + cronTaskConfigRefresh(); + } + } +} \ No newline at end of file diff --git a/api/sys-api/src/main/java/cn/qihangerp/sys/controller/SysTaskController.java b/api/sys-api/src/main/java/cn/qihangerp/sys/controller/SysTaskController.java index cb7dc2fd..3696749a 100644 --- a/api/sys-api/src/main/java/cn/qihangerp/sys/controller/SysTaskController.java +++ b/api/sys-api/src/main/java/cn/qihangerp/sys/controller/SysTaskController.java @@ -10,6 +10,7 @@ import cn.qihangerp.module.service.SysTaskLogsService; import cn.qihangerp.security.common.BaseController; import lombok.AllArgsConstructor; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; /** @@ -46,6 +47,11 @@ public class SysTaskController extends BaseController @PutMapping public AjaxResult edit(@RequestBody SysTask task) { + if(StringUtils.hasText(task.getCron())&&!task.getCron().equals("-")){ + task.setStatus(1); + }else{ + task.setStatus(0); + } return toAjax(taskService.updateById(task)); } }