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

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();
}
/**
*
*
* @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
* @date 2022/4/24 20:00
*/
@ApiOperationSupport(order = 8)
@ApiOperationSupport(order = 9)
@ApiOperation("获取定时任务类")
@GetMapping("/dev/job/getActionClass")
public CommonResult<List<String>> getActionClass() {

View File

@ -99,6 +99,14 @@ public interface DevJobService extends IService<DevJob> {
**/
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()));
}
@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<String> getActionClass() {
Map<String, CommonTimerTaskRunner> commonTimerTaskRunnerMap = SpringUtil.getBeansOfType(CommonTimerTaskRunner.class);