This commit is contained in:
Looly 2024-01-11 13:31:10 +08:00
parent f341b9ed7a
commit fe2516b646
5 changed files with 16 additions and 10 deletions

View File

@ -13,6 +13,7 @@
package org.dromara.hutool.cron; package org.dromara.hutool.cron;
import org.dromara.hutool.core.date.DateUnit; import org.dromara.hutool.core.date.DateUnit;
import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.core.thread.ThreadUtil; import org.dromara.hutool.core.thread.ThreadUtil;
import org.dromara.hutool.log.Log; import org.dromara.hutool.log.Log;
@ -63,9 +64,14 @@ public class CronTimer extends Thread implements Serializable {
//等待直到下一个时间点如果被中断直接退出Timer //等待直到下一个时间点如果被中断直接退出Timer
break; break;
} }
//执行点时间记录为执行开始的时间而非结束时间 //执行点时间记录为执行开始的时间而非结束时间
thisTime = System.currentTimeMillis(); spawnLauncher(nextTime);
spawnLauncher(thisTime);
// issue#3460 采用叠加方式确保正好是1分钟或1秒避免sleep晚醒问题
// 此处无需校验因为每次循环都是sleep与上触发点的时间差
// 当上一次晚醒后本次会减少sleep时间保证误差在一个unit内并不断修正
thisTime = nextTime;
} else{ } else{
// 非正常时间重新计算issue#1224@Github // 非正常时间重新计算issue#1224@Github
thisTime = System.currentTimeMillis(); thisTime = System.currentTimeMillis();

View File

@ -8,7 +8,7 @@
# demo.org.dromara.hutool.cron.TestJob.doTest = */1 * * * * * # demo.org.dromara.hutool.cron.TestJob.doTest = */1 * * * * *
[org.dromara.hutool.cron.demo]= [org.dromara.hutool.cron.demo]
# 6位表达式在秒匹配模式下可用此处表示每秒执行一次 # 6位表达式在秒匹配模式下可用此处表示每秒执行一次
# TestJob.doTest = */1 * * * * * # TestJob.doTest = */1 * * * * *
# 5位表达式在分匹配模式下可用此处表示每分钟执行一次 # 5位表达式在分匹配模式下可用此处表示每分钟执行一次

View File

@ -38,7 +38,7 @@
<druid.version>1.2.21</druid.version> <druid.version>1.2.21</druid.version>
<!-- 固定4.x --> <!-- 固定4.x -->
<hikariCP.version>4.0.3</hikariCP.version> <hikariCP.version>4.0.3</hikariCP.version>
<sqlite.version>3.43.0.0</sqlite.version> <sqlite.version>3.44.1.0</sqlite.version>
<!-- 此处固定2.5.x支持到JDK8 --> <!-- 此处固定2.5.x支持到JDK8 -->
<hsqldb.version>2.5.2</hsqldb.version> <hsqldb.version>2.5.2</hsqldb.version>
</properties> </properties>

View File

@ -32,7 +32,7 @@
<Automatic-Module-Name>org.dromara.hutool.extra</Automatic-Module-Name> <Automatic-Module-Name>org.dromara.hutool.extra</Automatic-Module-Name>
<!-- versions --> <!-- versions -->
<velocity.version>2.3</velocity.version> <velocity.version>2.3</velocity.version>
<beetl.version>3.15.8.RELEASE</beetl.version> <beetl.version>3.15.12.RELEASE</beetl.version>
<rythm.version>1.4.2</rythm.version> <rythm.version>1.4.2</rythm.version>
<freemarker.version>2.3.32</freemarker.version> <freemarker.version>2.3.32</freemarker.version>
<enjoy.version>5.1.3</enjoy.version> <enjoy.version>5.1.3</enjoy.version>
@ -415,7 +415,7 @@
<dependency> <dependency>
<groupId>com.rnkrsoft.bopomofo4j</groupId> <groupId>com.rnkrsoft.bopomofo4j</groupId>
<artifactId>bopomofo4j</artifactId> <artifactId>bopomofo4j</artifactId>
<version>1.0.0</version> <version>1.0.1</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
@ -496,7 +496,7 @@
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId> <artifactId>commons-compress</artifactId>
<version>1.24.0</version> <version>1.25.0</version>
<scope>compile</scope> <scope>compile</scope>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
@ -504,7 +504,7 @@
<dependency> <dependency>
<groupId>com.github.oshi</groupId> <groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId> <artifactId>oshi-core</artifactId>
<version>6.4.5</version> <version>6.4.10</version>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <exclusion>

View File

@ -32,10 +32,10 @@
<Automatic-Module-Name>org.dromara.hutool.log</Automatic-Module-Name> <Automatic-Module-Name>org.dromara.hutool.log</Automatic-Module-Name>
<!-- versions --> <!-- versions -->
<slf4j.version>2.0.9</slf4j.version> <slf4j.version>2.0.9</slf4j.version>
<logback.version>1.4.13</logback.version> <logback.version>1.4.14</logback.version>
<log4j.version>1.2.17</log4j.version> <log4j.version>1.2.17</log4j.version>
<log4j2.version>2.20.0</log4j2.version> <log4j2.version>2.20.0</log4j2.version>
<commons-logging.version>1.2</commons-logging.version> <commons-logging.version>1.3.0</commons-logging.version>
<tinylog.version>1.3.6</tinylog.version> <tinylog.version>1.3.6</tinylog.version>
<tinylog2.version>2.6.2</tinylog2.version> <tinylog2.version>2.6.2</tinylog2.version>
<!-- 固定3.4.x支持到jdk8 --> <!-- 固定3.4.x支持到jdk8 -->