定时任务后端接口变更
This commit is contained in:
+8
-13
@@ -89,10 +89,6 @@ public class QuartzJobController {
|
|||||||
//@RequiresRoles("admin")
|
//@RequiresRoles("admin")
|
||||||
@RequestMapping(value = "/add", method = RequestMethod.POST)
|
@RequestMapping(value = "/add", method = RequestMethod.POST)
|
||||||
public Result<?> add(@RequestBody QuartzJob quartzJob) {
|
public Result<?> add(@RequestBody QuartzJob quartzJob) {
|
||||||
List<QuartzJob> list = quartzJobService.findByJobClassName(quartzJob.getJobClassName());
|
|
||||||
if (list != null && list.size() > 0) {
|
|
||||||
return Result.error("该定时任务类名已存在");
|
|
||||||
}
|
|
||||||
quartzJobService.saveAndScheduleJob(quartzJob);
|
quartzJobService.saveAndScheduleJob(quartzJob);
|
||||||
return Result.OK("创建定时任务成功");
|
return Result.OK("创建定时任务成功");
|
||||||
}
|
}
|
||||||
@@ -155,39 +151,38 @@ public class QuartzJobController {
|
|||||||
/**
|
/**
|
||||||
* 暂停定时任务
|
* 暂停定时任务
|
||||||
*
|
*
|
||||||
* @param jobClassName
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
//@RequiresRoles("admin")
|
//@RequiresRoles("admin")
|
||||||
@GetMapping(value = "/pause")
|
@GetMapping(value = "/pause")
|
||||||
@ApiOperation(value = "暂停定时任务")
|
@ApiOperation(value = "暂停定时任务")
|
||||||
public Result<Object> pauseJob(@RequestParam(name = "jobClassName", required = true) String jobClassName) {
|
public Result<Object> pauseJob(@RequestParam(name = "id") String id) {
|
||||||
QuartzJob job = null;
|
QuartzJob job = quartzJobService.getById(id);
|
||||||
job = quartzJobService.getOne(new LambdaQueryWrapper<QuartzJob>().eq(QuartzJob::getJobClassName, jobClassName));
|
|
||||||
if (job == null) {
|
if (job == null) {
|
||||||
return Result.error("定时任务不存在!");
|
return Result.error("定时任务不存在!");
|
||||||
}
|
}
|
||||||
quartzJobService.pause(job);
|
quartzJobService.pause(job);
|
||||||
return Result.OK("暂停定时任务成功");
|
return Result.ok("暂停定时任务成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动定时任务
|
* 启动定时任务
|
||||||
*
|
*
|
||||||
* @param jobClassName
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
//@RequiresRoles("admin")
|
//@RequiresRoles("admin")
|
||||||
@GetMapping(value = "/resume")
|
@GetMapping(value = "/resume")
|
||||||
@ApiOperation(value = "恢复定时任务")
|
@ApiOperation(value = "恢复定时任务")
|
||||||
public Result<Object> resumeJob(@RequestParam(name = "jobClassName", required = true) String jobClassName) {
|
public Result<Object> resumeJob(@RequestParam(name = "id") String id) {
|
||||||
QuartzJob job = quartzJobService.getOne(new LambdaQueryWrapper<QuartzJob>().eq(QuartzJob::getJobClassName, jobClassName));
|
QuartzJob job = quartzJobService.getById(id);
|
||||||
if (job == null) {
|
if (job == null) {
|
||||||
return Result.error("定时任务不存在!");
|
return Result.error("定时任务不存在!");
|
||||||
}
|
}
|
||||||
quartzJobService.resumeJob(job);
|
quartzJobService.resumeJob(job);
|
||||||
//scheduler.resumeJob(JobKey.jobKey(job.getJobClassName().trim()));
|
//scheduler.resumeJob(JobKey.jobKey(job.getJobClassName().trim()));
|
||||||
return Result.OK("恢复定时任务成功");
|
return Result.ok("恢复定时任务成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-2
@@ -26,7 +26,7 @@ public class SampleParamJob implements Job {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
|
log.info(" Job Execution key:"+jobExecutionContext.getJobDetail().getKey());
|
||||||
log.info(String.format("welcome %s! jero-boot 带参数定时任务 SampleParamJob ! 时间:" + DateUtils.now(), this.parameter));
|
log.info( String.format("welcome %s! Jeecg-Boot 带参数定时任务 SampleParamJob ! 时间:" + DateUtils.now(), this.parameter));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-24
@@ -41,18 +41,18 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
return quartzJobMapper.findByJobClassName(jobClassName);
|
return quartzJobMapper.findByJobClassName(jobClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 保存&启动定时任务
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean saveAndScheduleJob(QuartzJob quartzJob) {
|
public boolean saveAndScheduleJob(QuartzJob quartzJob) {
|
||||||
if (CommonConstant.STATUS_NORMAL.equals(quartzJob.getStatus())) {
|
|
||||||
// 定时器添加
|
|
||||||
this.schedulerAdd(quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
|
||||||
}
|
|
||||||
// DB设置修改
|
// DB设置修改
|
||||||
quartzJob.setDelFlag(CommonConstant.DEL_FLAG_0);
|
quartzJob.setDelFlag(CommonConstant.DEL_FLAG_0);
|
||||||
return this.save(quartzJob);
|
boolean success = this.save(quartzJob);
|
||||||
|
if (success) {
|
||||||
|
if (CommonConstant.STATUS_NORMAL.equals(quartzJob.getStatus())) {
|
||||||
|
// 定时器添加
|
||||||
|
this.schedulerAdd(quartzJob.getId(), quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,8 +60,8 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean resumeJob(QuartzJob quartzJob) {
|
public boolean resumeJob(QuartzJob quartzJob) {
|
||||||
schedulerDelete(quartzJob.getJobClassName().trim());
|
schedulerDelete(quartzJob.getId());
|
||||||
schedulerAdd(quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
schedulerAdd(quartzJob.getId(), quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
||||||
quartzJob.setStatus(CommonConstant.STATUS_NORMAL);
|
quartzJob.setStatus(CommonConstant.STATUS_NORMAL);
|
||||||
return this.updateById(quartzJob);
|
return this.updateById(quartzJob);
|
||||||
}
|
}
|
||||||
@@ -73,10 +73,10 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
@Override
|
@Override
|
||||||
public boolean editAndScheduleJob(QuartzJob quartzJob) throws SchedulerException {
|
public boolean editAndScheduleJob(QuartzJob quartzJob) throws SchedulerException {
|
||||||
if (CommonConstant.STATUS_NORMAL.equals(quartzJob.getStatus())) {
|
if (CommonConstant.STATUS_NORMAL.equals(quartzJob.getStatus())) {
|
||||||
schedulerDelete(quartzJob.getJobClassName().trim());
|
schedulerDelete(quartzJob.getId());
|
||||||
schedulerAdd(quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
schedulerAdd(quartzJob.getId(), quartzJob.getJobClassName().trim(), quartzJob.getCronExpression().trim(), quartzJob.getParameter());
|
||||||
}else{
|
}else{
|
||||||
scheduler.pauseJob(JobKey.jobKey(quartzJob.getJobClassName().trim()));
|
scheduler.pauseJob(JobKey.jobKey(quartzJob.getId()));
|
||||||
}
|
}
|
||||||
return this.updateById(quartzJob);
|
return this.updateById(quartzJob);
|
||||||
}
|
}
|
||||||
@@ -86,7 +86,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean deleteAndStopJob(QuartzJob job) {
|
public boolean deleteAndStopJob(QuartzJob job) {
|
||||||
schedulerDelete(job.getJobClassName().trim());
|
schedulerDelete(job.getId());
|
||||||
boolean ok = this.removeById(job.getId());
|
boolean ok = this.removeById(job.getId());
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,9 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
String ymd = DateUtils.date2Str(startDate,DateUtils.yyyymmddhhmmss.get());
|
String ymd = DateUtils.date2Str(startDate,DateUtils.yyyymmddhhmmss.get());
|
||||||
String identity = jobName + ymd;
|
String identity = jobName + ymd;
|
||||||
//3秒后执行 只执行一次
|
//3秒后执行 只执行一次
|
||||||
startDate.setTime(startDate.getTime()+3000L);
|
// update-begin--author:sunjianlei ---- date:20210511--- for:定时任务立即执行,延迟3秒改成0.1秒-------
|
||||||
|
startDate.setTime(startDate.getTime() + 100L);
|
||||||
|
// update-end--author:sunjianlei ---- date:20210511--- for:定时任务立即执行,延迟3秒改成0.1秒-------
|
||||||
// 定义一个Trigger
|
// 定义一个Trigger
|
||||||
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
|
SimpleTrigger trigger = (SimpleTrigger)TriggerBuilder.newTrigger()
|
||||||
.withIdentity(identity, JOB_TEST_GROUP)
|
.withIdentity(identity, JOB_TEST_GROUP)
|
||||||
@@ -114,7 +116,7 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pause(QuartzJob quartzJob){
|
public void pause(QuartzJob quartzJob){
|
||||||
schedulerDelete(quartzJob.getJobClassName().trim());
|
schedulerDelete(quartzJob.getId());
|
||||||
quartzJob.setStatus(CommonConstant.STATUS_DISABLE);
|
quartzJob.setStatus(CommonConstant.STATUS_DISABLE);
|
||||||
this.updateById(quartzJob);
|
this.updateById(quartzJob);
|
||||||
}
|
}
|
||||||
@@ -126,19 +128,19 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
* @param cronExpression
|
* @param cronExpression
|
||||||
* @param parameter
|
* @param parameter
|
||||||
*/
|
*/
|
||||||
private void schedulerAdd(String jobClassName, String cronExpression, String parameter) {
|
private void schedulerAdd(String id, String jobClassName, String cronExpression, String parameter) {
|
||||||
try {
|
try {
|
||||||
// 启动调度器
|
// 启动调度器
|
||||||
scheduler.start();
|
scheduler.start();
|
||||||
|
|
||||||
// 构建job信息
|
// 构建job信息
|
||||||
JobDetail jobDetail = JobBuilder.newJob(getClass(jobClassName).getClass()).withIdentity(jobClassName).usingJobData("parameter", parameter).build();
|
JobDetail jobDetail = JobBuilder.newJob(getClass(jobClassName).getClass()).withIdentity(id).usingJobData("parameter", parameter).build();
|
||||||
|
|
||||||
// 表达式调度构建器(即任务执行的时间)
|
// 表达式调度构建器(即任务执行的时间)
|
||||||
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
|
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
|
||||||
|
|
||||||
// 按新的cronExpression表达式构建一个新的trigger
|
// 按新的cronExpression表达式构建一个新的trigger
|
||||||
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(jobClassName).withSchedule(scheduleBuilder).build();
|
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(id).withSchedule(scheduleBuilder).build();
|
||||||
|
|
||||||
scheduler.scheduleJob(jobDetail, trigger);
|
scheduler.scheduleJob(jobDetail, trigger);
|
||||||
} catch (SchedulerException e) {
|
} catch (SchedulerException e) {
|
||||||
@@ -153,13 +155,13 @@ public class QuartzJobServiceImpl extends ServiceImpl<QuartzJobMapper, QuartzJob
|
|||||||
/**
|
/**
|
||||||
* 删除定时任务
|
* 删除定时任务
|
||||||
*
|
*
|
||||||
* @param jobClassName
|
* @param id
|
||||||
*/
|
*/
|
||||||
private void schedulerDelete(String jobClassName) {
|
private void schedulerDelete(String id) {
|
||||||
try {
|
try {
|
||||||
scheduler.pauseTrigger(TriggerKey.triggerKey(jobClassName));
|
scheduler.pauseTrigger(TriggerKey.triggerKey(id));
|
||||||
scheduler.unscheduleJob(TriggerKey.triggerKey(jobClassName));
|
scheduler.unscheduleJob(TriggerKey.triggerKey(id));
|
||||||
scheduler.deleteJob(JobKey.jobKey(jobClassName));
|
scheduler.deleteJob(JobKey.jobKey(id));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
throw new JeroBootException("删除定时任务失败");
|
throw new JeroBootException("删除定时任务失败");
|
||||||
|
|||||||
Reference in New Issue
Block a user