diff --git a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronTimer.java b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronTimer.java
index 085f01818..3ad60d746 100644
--- a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronTimer.java
+++ b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronTimer.java
@@ -13,6 +13,7 @@
package org.dromara.hutool.cron;
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.log.Log;
@@ -63,9 +64,14 @@ public class CronTimer extends Thread implements Serializable {
//等待直到下一个时间点,如果被中断直接退出Timer
break;
}
+
//执行点,时间记录为执行开始的时间,而非结束时间
- thisTime = System.currentTimeMillis();
- spawnLauncher(thisTime);
+ spawnLauncher(nextTime);
+
+ // issue#3460 采用叠加方式,确保正好是1分钟或1秒,避免sleep晚醒问题
+ // 此处无需校验,因为每次循环都是sleep与上触发点的时间差。
+ // 当上一次晚醒后,本次会减少sleep时间,保证误差在一个unit内,并不断修正。
+ thisTime = nextTime;
} else{
// 非正常时间重新计算(issue#1224@Github)
thisTime = System.currentTimeMillis();
diff --git a/hutool-cron/src/test/resources/config/cron.setting b/hutool-cron/src/test/resources/config/cron.setting
index 4e2860de9..62faca9fc 100644
--- a/hutool-cron/src/test/resources/config/cron.setting
+++ b/hutool-cron/src/test/resources/config/cron.setting
@@ -8,7 +8,7 @@
# demo.org.dromara.hutool.cron.TestJob.doTest = */1 * * * * *
-[org.dromara.hutool.cron.demo]=
+[org.dromara.hutool.cron.demo]
# 6位表达式在秒匹配模式下可用,此处表示每秒执行一次
# TestJob.doTest = */1 * * * * *
# 5位表达式在分匹配模式下可用,此处表示每分钟执行一次
diff --git a/hutool-db/pom.xml b/hutool-db/pom.xml
index bab350310..188744420 100755
--- a/hutool-db/pom.xml
+++ b/hutool-db/pom.xml
@@ -38,7 +38,7 @@
1.2.21
4.0.3
- 3.43.0.0
+ 3.44.1.0
2.5.2
diff --git a/hutool-extra/pom.xml b/hutool-extra/pom.xml
index 1ef2aec1b..0febf0c07 100755
--- a/hutool-extra/pom.xml
+++ b/hutool-extra/pom.xml
@@ -32,7 +32,7 @@
org.dromara.hutool.extra
2.3
- 3.15.8.RELEASE
+ 3.15.12.RELEASE
1.4.2
2.3.32
5.1.3
@@ -415,7 +415,7 @@
com.rnkrsoft.bopomofo4j
bopomofo4j
- 1.0.0
+ 1.0.1
true
@@ -496,7 +496,7 @@
org.apache.commons
commons-compress
- 1.24.0
+ 1.25.0
compile
true
@@ -504,7 +504,7 @@
com.github.oshi
oshi-core
- 6.4.5
+ 6.4.10
provided
diff --git a/hutool-log/pom.xml b/hutool-log/pom.xml
index db948322f..4a93b8e20 100755
--- a/hutool-log/pom.xml
+++ b/hutool-log/pom.xml
@@ -32,10 +32,10 @@
org.dromara.hutool.log
2.0.9
- 1.4.13
+ 1.4.14
1.2.17
2.20.0
- 1.2
+ 1.3.0
1.3.6
2.6.2