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);