diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/enums/SystemResponseEnum.java b/pqs-system/system-api/src/main/java/com/njcn/system/enums/SystemResponseEnum.java index 7c357e917..4e2fd748f 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/enums/SystemResponseEnum.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/enums/SystemResponseEnum.java @@ -45,6 +45,7 @@ public enum SystemResponseEnum { EVENT_REPORT_REPEAT("A00361","暂态报告模板重复"), NOT_EXISTED("A00361", "您查询的该条记录不存在"), + TIMER_NO_CLASS("A00361", "请检查定时任务是否添加"), /** * 定时任务执行类不存在 diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/TimersController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/TimersController.java index a8fc0a14f..a9666a92e 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/TimersController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/TimersController.java @@ -164,5 +164,19 @@ public class TimersController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + /** + * 执行一次定时任务 + * + * @author hongawen + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/run") + @ApiOperation("执行一次定时任务") + public HttpResult run(String id) { + String methodDescribe = getMethodDescribe("run"); + timersService.run(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/ITimersService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/ITimersService.java index 6610ffb9c..7ee158c9b 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/ITimersService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/ITimersService.java @@ -31,4 +31,6 @@ public interface ITimersService extends IService { void start(String id); void stop(String id); + + void run(String id); } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/TimersServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/TimersServiceImpl.java index a278428c9..fd0fb27e6 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/TimersServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/TimersServiceImpl.java @@ -104,7 +104,7 @@ public class TimersServiceImpl extends ServiceImpl impleme // 更新库中的状态 LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.set(Timers::getJobStatus, TimerJobStatusEnum.RUNNING.getCode()) - .eq(Timers::getId,id); + .eq(Timers::getId, id); this.update(wrapper); // 添加定时任务调度 @@ -125,6 +125,19 @@ public class TimersServiceImpl extends ServiceImpl impleme timerExeService.stopTimer(sysTimers.getId()); } + @Override + public void run(String id) { + Timers sysTimers = this.queryTimers(id); + String actionClass = sysTimers.getActionClass(); + TimerTaskRunner timerTaskRunner; + try { + timerTaskRunner = (TimerTaskRunner) SpringUtil.getBean(Class.forName(actionClass)); + } catch (ClassNotFoundException e) { + throw new BusinessException(SystemResponseEnum.TIMER_NO_CLASS); + } + timerTaskRunner.action(); + } + /** * 获取定时任务 *