forked from github/dataease
feat(fix):定时任务重启执行修复;前端form校验优化
This commit is contained in:
parent
183c867452
commit
47392eead8
@ -2,9 +2,16 @@ package io.dataease.job.sechedule;
|
||||
|
||||
import io.dataease.commons.utils.LogUtil;
|
||||
import org.quartz.*;
|
||||
import org.quartz.impl.triggers.CronTriggerImpl;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -73,7 +80,9 @@ public class ScheduleManager {
|
||||
|
||||
triggerBuilder.withIdentity(triggerKey);
|
||||
|
||||
triggerBuilder.startAt(startTime);
|
||||
if (startTime.before(new Date())) {
|
||||
triggerBuilder.startAt(getNTimeByCron(cron));
|
||||
}
|
||||
|
||||
if (endTime != null) {
|
||||
triggerBuilder.endAt(endTime);
|
||||
@ -149,7 +158,9 @@ public class ScheduleManager {
|
||||
|
||||
triggerBuilder.withIdentity(triggerKey);// 触发器名,触发器组
|
||||
|
||||
triggerBuilder.startAt(startTime);
|
||||
if (startTime.before(new Date())) {
|
||||
triggerBuilder.startAt(getNTimeByCron(cron));
|
||||
}
|
||||
|
||||
if (endTime != null) {
|
||||
triggerBuilder.endAt(endTime);
|
||||
@ -395,4 +406,23 @@ public class ScheduleManager {
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
public static Date getNTimeByCron(String cron) {
|
||||
try {
|
||||
CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
|
||||
cronTriggerImpl.setCronExpression(cron);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Date now = calendar.getTime();
|
||||
// calendar.add(java.util.Calendar.YEAR, 1);
|
||||
calendar.add(Calendar.MONTH, 2);
|
||||
|
||||
List<Date> dates = TriggerUtils.computeFireTimesBetween(cronTriggerImpl, null, now, calendar.getTime());
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String nextTime = dateFormat.format(dates.get(0));
|
||||
Date date = dateFormat.parse(nextTime);
|
||||
return date;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -445,6 +445,7 @@ export default {
|
||||
},
|
||||
|
||||
close() {
|
||||
this.$refs['groupForm'].resetFields()
|
||||
this.editGroup = false
|
||||
this.groupForm = {
|
||||
name: '',
|
||||
|
@ -458,6 +458,7 @@ export default {
|
||||
},
|
||||
|
||||
close() {
|
||||
this.$refs['groupForm'].resetFields()
|
||||
this.editGroup = false
|
||||
this.groupForm = {
|
||||
name: '',
|
||||
|
Loading…
Reference in New Issue
Block a user