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