bugfix:修复定时任务页面bug
This commit is contained in:
@@ -251,7 +251,6 @@ public class BaseQuartzConfigController{
|
|||||||
String remark = StringDUtil.changeNullToEmpty(map.get("remark"));
|
String remark = StringDUtil.changeNullToEmpty(map.get("remark"));
|
||||||
String quartzType=StringDUtil.changeNullToEmpty(map.get("jobType"));
|
String quartzType=StringDUtil.changeNullToEmpty(map.get("jobType"));
|
||||||
String time=StringDUtil.changeNullToEmpty(map.get("time"));
|
String time=StringDUtil.changeNullToEmpty(map.get("time"));
|
||||||
String status=StringDUtil.changeNullToEmpty(map.get("status"));
|
|
||||||
|
|
||||||
if(time==null || "".equals(time)){
|
if(time==null || "".equals(time)){
|
||||||
throw new RuntimeException("time为空");
|
throw new RuntimeException("time为空");
|
||||||
@@ -269,7 +268,9 @@ public class BaseQuartzConfigController{
|
|||||||
updateMap.put("quartzType", quartzType);
|
updateMap.put("quartzType", quartzType);
|
||||||
this.baseQuartzConfigService.updateQuartzConfigById(updateMap);
|
this.baseQuartzConfigService.updateQuartzConfigById(updateMap);
|
||||||
|
|
||||||
if("0".equals(status)){
|
// 查询当前任务状态,如果是运行中状态则重启任务
|
||||||
|
BaseQuartzConfigEntity currentEntity = baseQuartzConfigService.get(configId);
|
||||||
|
if(currentEntity != null && "1".equals(currentEntity.getStatus())){
|
||||||
mySchedulerFactory.pauseJob(configId);
|
mySchedulerFactory.pauseJob(configId);
|
||||||
Thread.sleep(100);
|
Thread.sleep(100);
|
||||||
mySchedulerFactory.resumeJob(configId);
|
mySchedulerFactory.resumeJob(configId);
|
||||||
@@ -341,6 +342,11 @@ public class BaseQuartzConfigController{
|
|||||||
//拼接cron表达式
|
//拼接cron表达式
|
||||||
String cronStr= "";
|
String cronStr= "";
|
||||||
|
|
||||||
|
// 如果dataStr包含空格,说明是完整的cron表达式,直接返回
|
||||||
|
if(StringDUtil.isNotBlank(dataStr) && dataStr.contains(" ")){
|
||||||
|
return dataStr;
|
||||||
|
}
|
||||||
|
|
||||||
//拆分时分秒
|
//拆分时分秒
|
||||||
String[] split = dataStr.split(":");
|
String[] split = dataStr.split(":");
|
||||||
|
|
||||||
|
|||||||
@@ -78,10 +78,11 @@ public class MySchedulerFactory {
|
|||||||
if (StringDUtil.isNotBlank(classz)) {
|
if (StringDUtil.isNotBlank(classz)) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(classz);
|
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(classz);
|
||||||
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(config.getConfigId(), config.getQuartzGroup())
|
String groupName = !StringDUtil.isNotBlank(config.getQuartzGroup()) ? "DEFAULT" : config.getQuartzGroup();
|
||||||
|
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(config.getConfigId(), groupName)
|
||||||
.usingJobData("id", config.getConfigId()).usingJobData("name", config.getQuartzName()).build();
|
.usingJobData("id", config.getConfigId()).usingJobData("name", config.getQuartzName()).build();
|
||||||
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(config.getExpression());
|
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(config.getExpression());
|
||||||
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(config.getConfigId(), config.getQuartzGroup())
|
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(config.getConfigId(), groupName)
|
||||||
.withSchedule(scheduleBuilder).build();
|
.withSchedule(scheduleBuilder).build();
|
||||||
scheduler.scheduleJob(jobDetail, cronTrigger);
|
scheduler.scheduleJob(jobDetail, cronTrigger);
|
||||||
}
|
}
|
||||||
@@ -104,7 +105,8 @@ public class MySchedulerFactory {
|
|||||||
public void pauseJob(String id) throws Exception {
|
public void pauseJob(String id) throws Exception {
|
||||||
Scheduler scheduler = getScheduler();
|
Scheduler scheduler = getScheduler();
|
||||||
BaseQuartzConfigEntity QuartzConfig = baseQuartzConfigService.get(String.valueOf(id));
|
BaseQuartzConfigEntity QuartzConfig = baseQuartzConfigService.get(String.valueOf(id));
|
||||||
JobKey jobKey = JobKey.jobKey(QuartzConfig.getConfigId(), QuartzConfig.getQuartzGroup());
|
String groupName = !StringDUtil.isNotBlank(QuartzConfig.getQuartzGroup()) ? "DEFAULT" : QuartzConfig.getQuartzGroup();
|
||||||
|
JobKey jobKey = JobKey.jobKey(QuartzConfig.getConfigId(), groupName);
|
||||||
scheduler.deleteJob(jobKey);
|
scheduler.deleteJob(jobKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,14 +120,15 @@ public class MySchedulerFactory {
|
|||||||
public void resumeJob(String id) throws Exception {
|
public void resumeJob(String id) throws Exception {
|
||||||
Scheduler scheduler = getScheduler();
|
Scheduler scheduler = getScheduler();
|
||||||
BaseQuartzConfigEntity QuartzConfig = baseQuartzConfigService.get(String.valueOf(id));
|
BaseQuartzConfigEntity QuartzConfig = baseQuartzConfigService.get(String.valueOf(id));
|
||||||
JobKey jobKey = JobKey.jobKey(QuartzConfig.getConfigId(), QuartzConfig.getQuartzGroup());
|
String groupName = !StringDUtil.isNotBlank(QuartzConfig.getQuartzGroup()) ? "DEFAULT" : QuartzConfig.getQuartzGroup();
|
||||||
|
JobKey jobKey = JobKey.jobKey(QuartzConfig.getConfigId(), groupName);
|
||||||
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(QuartzConfig.getQuartzClass());
|
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(QuartzConfig.getQuartzClass());
|
||||||
JobDetail jobDetail1 = scheduler.getJobDetail(jobKey);
|
JobDetail jobDetail1 = scheduler.getJobDetail(jobKey);
|
||||||
if (jobDetail1 == null) {
|
if (jobDetail1 == null) {
|
||||||
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(QuartzConfig.getConfigId(), QuartzConfig.getQuartzGroup())
|
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(QuartzConfig.getConfigId(), groupName)
|
||||||
.usingJobData("id", QuartzConfig.getConfigId()).usingJobData("name", QuartzConfig.getQuartzName()).build();
|
.usingJobData("id", QuartzConfig.getConfigId()).usingJobData("name", QuartzConfig.getQuartzName()).build();
|
||||||
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(QuartzConfig.getExpression());
|
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(QuartzConfig.getExpression());
|
||||||
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(QuartzConfig.getConfigId(), QuartzConfig.getQuartzGroup())
|
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(QuartzConfig.getConfigId(), groupName)
|
||||||
.withSchedule(scheduleBuilder).build();
|
.withSchedule(scheduleBuilder).build();
|
||||||
scheduler.scheduleJob(jobDetail, cronTrigger);
|
scheduler.scheduleJob(jobDetail, cronTrigger);
|
||||||
} else {
|
} else {
|
||||||
@@ -149,10 +152,11 @@ public class MySchedulerFactory {
|
|||||||
if (StringDUtil.isNotBlank(classz)) {
|
if (StringDUtil.isNotBlank(classz)) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(classz);
|
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(classz);
|
||||||
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(id, group)
|
String groupName = !StringDUtil.isNotBlank(group) ? "DEFAULT" : group;
|
||||||
|
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(id, groupName)
|
||||||
.usingJobData("id", id).usingJobData("name", name).build();
|
.usingJobData("id", id).usingJobData("name", name).build();
|
||||||
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
|
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
|
||||||
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(id, group)
|
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(id, groupName)
|
||||||
.withSchedule(scheduleBuilder).build();
|
.withSchedule(scheduleBuilder).build();
|
||||||
scheduler.scheduleJob(jobDetail, cronTrigger);
|
scheduler.scheduleJob(jobDetail, cronTrigger);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,11 +273,11 @@
|
|||||||
if (obj.event === 'edit') {
|
if (obj.event === 'edit') {
|
||||||
editQuartz(data);
|
editQuartz(data);
|
||||||
} else if (obj.event === 'start') {
|
} else if (obj.event === 'start') {
|
||||||
changeStatus(data.id, '1');
|
changeStatus(data.configId, '1');
|
||||||
} else if (obj.event === 'pause') {
|
} else if (obj.event === 'pause') {
|
||||||
changeStatus(data.id, '0');
|
changeStatus(data.configId, '0');
|
||||||
} else if (obj.event === 'del') {
|
} else if (obj.event === 'del') {
|
||||||
deleteQuartz(data.id);
|
deleteQuartz(data.configId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
isEditMode = true;
|
isEditMode = true;
|
||||||
|
|
||||||
form.val('quartzForm', {
|
form.val('quartzForm', {
|
||||||
configId: data.id,
|
configId: data.configId,
|
||||||
quartzName: data.quartzName,
|
quartzName: data.quartzName,
|
||||||
jobType: data.quartzType,
|
jobType: data.quartzType,
|
||||||
quartz_class: data.quartzClass,
|
quartz_class: data.quartzClass,
|
||||||
@@ -397,8 +397,9 @@
|
|||||||
quartzName: quartzName,
|
quartzName: quartzName,
|
||||||
jobType: jobType,
|
jobType: jobType,
|
||||||
quartz_class: quartzClass,
|
quartz_class: quartzClass,
|
||||||
time: cronExpression,
|
remark: remark,
|
||||||
remark: remark
|
dataStr: cronExpression, // 直接传递完整的cron表达式
|
||||||
|
time: '0' // 传递time参数供后端使用
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isEditMode) {
|
if (isEditMode) {
|
||||||
|
|||||||
Reference in New Issue
Block a user