Optimize duplicate code
Use public methods to simplify duplicate code
This commit is contained in:
parent
662233e0dd
commit
9d944d3f76
|
|
@ -31,7 +31,6 @@ import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
|
|||
import org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||
import org.apache.dolphinscheduler.dao.utils.cron.CronUtils;
|
||||
import org.quartz.CronExpression;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -513,15 +512,7 @@ public class ExecutorService extends BaseService{
|
|||
List<Date> listDate = new LinkedList<>();
|
||||
if(!CollectionUtils.isEmpty(schedules)){
|
||||
for (Schedule item : schedules) {
|
||||
CronExpression cronExpression = null;
|
||||
try {
|
||||
cronExpression = CronUtils.parse2CronExpression(item.getCrontab());
|
||||
List<Date> list = CronUtils.getSelfFireDateList(start, end, cronExpression);
|
||||
listDate.addAll(list);
|
||||
} catch (ParseException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
continue;
|
||||
}
|
||||
listDate.addAll(CronUtils.getSelfFireDateList(start, end, item.getCrontab()));
|
||||
}
|
||||
}
|
||||
if(!CollectionUtils.isEmpty(listDate)){
|
||||
|
|
|
|||
|
|
@ -156,6 +156,23 @@ public class CronUtils {
|
|||
return dateList;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets all scheduled times for a period of time based on self dependency
|
||||
* @param startTime startTime
|
||||
* @param endTime endTime
|
||||
* @param cron cron
|
||||
* @return date list
|
||||
*/
|
||||
public static List<Date> getSelfFireDateList(Date startTime, Date endTime, String cron) {
|
||||
CronExpression cronExpression = null;
|
||||
try {
|
||||
cronExpression = CronUtils.parse2CronExpression(cron);
|
||||
}catch (ParseException e){
|
||||
logger.error(e.getMessage(), e);
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
return getSelfFireDateList(startTime, endTime, cronExpression);
|
||||
}
|
||||
|
||||
/**
|
||||
* get expiration time
|
||||
|
|
|
|||
|
|
@ -36,13 +36,11 @@ import org.apache.dolphinscheduler.dao.utils.DagHelper;
|
|||
import org.apache.dolphinscheduler.dao.utils.cron.CronUtils;
|
||||
import org.apache.dolphinscheduler.server.master.config.MasterConfig;
|
||||
import org.apache.dolphinscheduler.server.utils.AlertManager;
|
||||
import org.quartz.CronExpression;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
|
@ -215,15 +213,7 @@ public class MasterExecThread implements Runnable {
|
|||
List<Date> listDate = Lists.newLinkedList();
|
||||
if(!CollectionUtils.isEmpty(schedules)){
|
||||
for (Schedule schedule : schedules) {
|
||||
CronExpression cronExpression = null;
|
||||
try {
|
||||
cronExpression = CronUtils.parse2CronExpression(schedule.getCrontab());
|
||||
List<Date> list = CronUtils.getSelfFireDateList(startDate, endDate, cronExpression);
|
||||
listDate.addAll(list);
|
||||
} catch (ParseException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
continue;
|
||||
}
|
||||
listDate.addAll(CronUtils.getSelfFireDateList(startDate, endDate, schedule.getCrontab()));
|
||||
}
|
||||
}
|
||||
// get first fire date
|
||||
|
|
|
|||
Loading…
Reference in New Issue