我设置了一个 schedule
@Scheduled(cron = "0 0 23 * * ?")
理论上应该晚上 11 点调起,哪怕有差异也应该控制在 1 秒左右
但我这个任务没天晚上 8 ,9 ,10 点就调起了,而且不是固定时间,每天都不一样
log 如下:
2023-01-14 21:04:12,582 INFO c.e.t.b.d.c.DAGController [scheduling-1]
and different trigged time every day
服务是跑在 k8s 上的
检查了 pod 的 date 是正常的,服务器的的 date 是正常的
Spring version : 5.1.6.RELEASE
求助
1
iamv2er 2023-01-15 11:17:56 +08:00 via iPhone
重启一下
|
2
TUNGH 2023-01-15 12:01:25 +08:00
是不是定时任务太多,处理不过来导致延迟了?
|
3
feelinglucky 2023-01-15 12:55:48 +08:00
检查下时区
|
4
win301 2023-01-15 15:09:41 +08:00
|
5
hccsoul 2023-01-15 16:27:35 +08:00
GMT+8
|
7
cowcomic OP @TUNGH
@feelinglucky @ChovyChu Schedule 用的是多线程,而且目前设置定时的只有三个,早上 8 点一个,晚上 22 点一个,晚上 23 点一个,这三个任务从日志看执行都很快完成了,而且是从服务启动开始就没一个准的,都提前了,应该不是任务积压的问题 |
9
cowcomic OP @feelinglucky
@hccsoul 服务器和容器都是正确的时间,是 CST 时间,而且提前的时间也没有规律,不是每次都提前一个整点,而且每次时间都不一样,目前看还没超过两小时,但没啥规律忽短忽长的,也都不是整数 |
10
Terminator0826 2023-01-15 17:48:45 +08:00 via Android
可以多写几个 cron 试试,然后只设一个 schedule ,再不行换个依赖版本看看是不是 spring 的 bug
|
11
zhenjiachen 2023-01-15 20:44:54 +08:00 via iPhone
给 jvm 添加一个 timezone 的参数试试
|
12
zsdroid 2023-01-15 21:21:03 +08:00
我也遇到过设置了 10 点,结果 9 点 58 分就执行了
|
13
cp19890714 2023-01-15 21:32:49 +08:00
如果还没有找到原因,那就用笨方法:控制变量,一个个尝试。
列出所有可能导致该问题的原因, 每次改变一个,观察执行结果。 |
14
cowcomic OP @Terminator0826 spring issue 上的回复是 5.1.x 不维护了,回头换个高版本的试试
@zhenjiachen 好,回头试一下 @cp19890714 嗯嗯,之前就是没头绪,看了回复有了一些可以试的了 |