From b04c7510e532fe301d373be61623b8b7e05597d0 Mon Sep 17 00:00:00 2001 From: xuyuxiang Date: Fri, 3 Mar 2023 15:54:51 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=96=B0=E5=A2=9E=E7=AB=8B=E5=8D=B3?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/controller/DevJobController.java | 17 ++++++++++++++++- .../dev/modular/job/service/DevJobService.java | 8 ++++++++ .../job/service/impl/DevJobServiceImpl.java | 15 +++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/controller/DevJobController.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/controller/DevJobController.java index 1211d8c8..5f5b4c65 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/controller/DevJobController.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/controller/DevJobController.java @@ -164,13 +164,28 @@ public class DevJobController { return CommonResult.ok(); } + /** + * 立即运行定时任务 + * + * @author xuyuxiang + * @date 2021/10/13 14:01 + **/ + @ApiOperationSupport(order = 8) + @ApiOperation("立即运行定时任务") + @CommonLog("立即运行定时任务") + @PostMapping("/dev/job/runJobNow") + public CommonResult runJobNow(@RequestBody @Valid DevJobIdParam devJobIdParam) { + devJobService.runJobNow(devJobIdParam); + return CommonResult.ok(); + } + /** * 获取定时任务类 * * @author xuyuxiang * @date 2022/4/24 20:00 */ - @ApiOperationSupport(order = 8) + @ApiOperationSupport(order = 9) @ApiOperation("获取定时任务类") @GetMapping("/dev/job/getActionClass") public CommonResult> getActionClass() { diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/DevJobService.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/DevJobService.java index 2be83edf..2a1f66a7 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/DevJobService.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/DevJobService.java @@ -99,6 +99,14 @@ public interface DevJobService extends IService { **/ void runJob(DevJobIdParam devJobIdParam); + /** + * 立即运行定时任务 + * + * @author xuyuxiang + * @date 2023/3/3 15:50 + **/ + void runJobNow(DevJobIdParam devJobIdParam); + /** * 获取定时任务类 * diff --git a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/impl/DevJobServiceImpl.java b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/impl/DevJobServiceImpl.java index d16e0604..d5770827 100644 --- a/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/impl/DevJobServiceImpl.java +++ b/snowy-plugin/snowy-plugin-dev/src/main/java/vip/xiaonuo/dev/modular/job/service/impl/DevJobServiceImpl.java @@ -219,6 +219,21 @@ public class DevJobServiceImpl extends ServiceImpl impleme .set(DevJob::getJobStatus, DevJobStatusEnum.RUNNING.getValue())); } + @Override + public void runJobNow(DevJobIdParam devJobIdParam) { + DevJob devJob = this.detail(devJobIdParam); + if(devJob.getJobStatus().equals(DevJobStatusEnum.STOPPED.getValue())) { + // 如果是停止的,则先开启运行 + this.runJob(devJobIdParam); + } + try { + // 直接运行一次 + ((CommonTimerTaskRunner) SpringUtil.getBean(Class.forName(devJob.getActionClass()))).action(); + } catch (ClassNotFoundException e) { + throw new CommonException("定时任务找不到对应的类,名称为:{}", devJob.getActionClass()); + } + } + @Override public List getActionClass() { Map commonTimerTaskRunnerMap = SpringUtil.getBeansOfType(CommonTimerTaskRunner.class);