【更新】定时任务新增立即运行接口

pull/87/head
xuyuxiang 2023-03-03 15:54:51 +08:00
parent 16ff5dcb3c
commit b04c7510e5
3 changed files with 39 additions and 1 deletions

View File

@ -164,13 +164,28 @@ public class DevJobController {
return CommonResult.ok(); return CommonResult.ok();
} }
/**
*
*
* @author xuyuxiang
* @date 2021/10/13 14:01
**/
@ApiOperationSupport(order = 8)
@ApiOperation("立即运行定时任务")
@CommonLog("立即运行定时任务")
@PostMapping("/dev/job/runJobNow")
public CommonResult<String> runJobNow(@RequestBody @Valid DevJobIdParam devJobIdParam) {
devJobService.runJobNow(devJobIdParam);
return CommonResult.ok();
}
/** /**
* *
* *
* @author xuyuxiang * @author xuyuxiang
* @date 2022/4/24 20:00 * @date 2022/4/24 20:00
*/ */
@ApiOperationSupport(order = 8) @ApiOperationSupport(order = 9)
@ApiOperation("获取定时任务类") @ApiOperation("获取定时任务类")
@GetMapping("/dev/job/getActionClass") @GetMapping("/dev/job/getActionClass")
public CommonResult<List<String>> getActionClass() { public CommonResult<List<String>> getActionClass() {

View File

@ -99,6 +99,14 @@ public interface DevJobService extends IService<DevJob> {
**/ **/
void runJob(DevJobIdParam devJobIdParam); void runJob(DevJobIdParam devJobIdParam);
/**
*
*
* @author xuyuxiang
* @date 2023/3/3 15:50
**/
void runJobNow(DevJobIdParam devJobIdParam);
/** /**
* *
* *

View File

@ -219,6 +219,21 @@ public class DevJobServiceImpl extends ServiceImpl<DevJobMapper, DevJob> impleme
.set(DevJob::getJobStatus, DevJobStatusEnum.RUNNING.getValue())); .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 @Override
public List<String> getActionClass() { public List<String> getActionClass() {
Map<String, CommonTimerTaskRunner> commonTimerTaskRunnerMap = SpringUtil.getBeansOfType(CommonTimerTaskRunner.class); Map<String, CommonTimerTaskRunner> commonTimerTaskRunnerMap = SpringUtil.getBeansOfType(CommonTimerTaskRunner.class);