MCPcopy Create free account
hub / github.com/e2wugui/zeze / nextCronTimer

Method nextCronTimer

ZezeJava/ZezeJava/src/main/java/Zeze/Component/Timer.java:1068–1097  ·  view source on GitHub ↗
(@NotNull BCronTimer cronTimer, boolean missfire)

Source from the content-addressed store, hash-verified

1066 }
1067
1068 public static boolean nextCronTimer(@NotNull BCronTimer cronTimer, boolean missfire) throws ParseException {
1069 // check remain times
1070 var remainTimes = cronTimer.getRemainTimes();
1071 if (remainTimes >= 0) {
1072 if (remainTimes > 0)
1073 cronTimer.setRemainTimes(--remainTimes);
1074 if (remainTimes == 0)
1075 return false;
1076 }
1077
1078 var nextExpectedTime = cronTimer.getNextExpectedTime();
1079 cronTimer.setExpectedTime(nextExpectedTime);
1080 cronTimer.setHappenTimes(cronTimer.getHappenTimes() + 1);
1081 var now = System.currentTimeMillis();
1082 cronTimer.setHappenTime(now);
1083
1084 long baseTime;
1085 if (missfire && cronTimer.getMissfirePolicy() == eMissfirePolicyRunOnce) {
1086 // 这种策略重置时间,定时器将在新的开始时间之后按原来的间隔执行。
1087 // cronTimer.setStartTime(now);
1088 baseTime = now;
1089 } else
1090 baseTime = nextExpectedTime;
1091 nextExpectedTime = cronNextTime(cronTimer.getCronExpression(), baseTime);
1092 cronTimer.setNextExpectedTime(nextExpectedTime);
1093
1094 // check endTime
1095 var endTime = cronTimer.getEndTime();
1096 return endTime <= 0 || nextExpectedTime <= endTime;
1097 }
1098
1099 private void fireCron(long timerSerialId, int serverId, @NotNull String timerId, long concurrentSerialNo,
1100 boolean missfire) {

Callers 3

fireCronMethod · 0.95
fireOnlineCronMethod · 0.95
fireCronMethod · 0.95

Calls 12

cronNextTimeMethod · 0.95
getRemainTimesMethod · 0.65
getNextExpectedTimeMethod · 0.65
getHappenTimesMethod · 0.65
getMissfirePolicyMethod · 0.65
getCronExpressionMethod · 0.65
getEndTimeMethod · 0.65
setRemainTimesMethod · 0.45
setExpectedTimeMethod · 0.45
setHappenTimesMethod · 0.45
setHappenTimeMethod · 0.45
setNextExpectedTimeMethod · 0.45

Tested by

no test coverage detected