refactor(scheduler):优化任务调度时间环逻辑

- 添加 refreshNextValidTime 方法注释
- 使用 computeIfAbsent 简化时间环数据初始化- 更新日志输出格式为 List.of
-优化时间环数据空值判断逻辑
pull/72/head
xuxueli 11 months ago
parent 89563da2ac
commit 8785b3f516

@ -228,6 +228,12 @@ public class JobScheduleHelper {
ringThread.start(); ringThread.start();
} }
/**
* refresh next valid time of job
*
* @param jobInfo job info
* @param fromTime from time
*/
private void refreshNextValidTime(XxlJobInfo jobInfo, Date fromTime) { private void refreshNextValidTime(XxlJobInfo jobInfo, Date fromTime) {
try { try {
Date nextValidTime = generateNextValidTime(jobInfo, fromTime); Date nextValidTime = generateNextValidTime(jobInfo, fromTime);
@ -254,16 +260,21 @@ public class JobScheduleHelper {
} }
} }
/**
* push time ring
*
* @param ringSecond ring second
* @param jobId job id
*/
private void pushTimeRing(int ringSecond, int jobId){ private void pushTimeRing(int ringSecond, int jobId){
// push async ring // get ringItemData, init when not exists
List<Integer> ringItemData = ringData.get(ringSecond); List<Integer> ringItemData = ringData.computeIfAbsent(
if (ringItemData == null) { ringSecond,
ringItemData = new ArrayList<Integer>(); k -> new ArrayList<>());
ringData.put(ringSecond, ringItemData);
}
ringItemData.add(jobId);
logger.debug(">>>>>>>>>>> xxl-job, schedule push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) ); // push async rind
ringItemData.add(jobId);
logger.debug(">>>>>>>>>>> xxl-job, schedule push time-ring : " + ringSecond + " = " + List.of(ringItemData));
} }
/** /**
@ -293,7 +304,7 @@ public class JobScheduleHelper {
if (!ringData.isEmpty()) { if (!ringData.isEmpty()) {
for (int second : ringData.keySet()) { for (int second : ringData.keySet()) {
List<Integer> tmpData = ringData.get(second); List<Integer> tmpData = ringData.get(second);
if (tmpData!=null && tmpData.size()>0) { if (tmpData!=null && !tmpData.isEmpty()) {
hasRingData = true; hasRingData = true;
break; break;
} }

Loading…
Cancel
Save