String @Scheduled 比预计时间早很多调起任务,大家有遇到过么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cowcomic
V2EX    Java

String @Scheduled 比预计时间早很多调起任务,大家有遇到过么

  •  
  •   cowcomic 2023-01-15 10:25:02 +08:00 3469 次点击
    这是一个创建于 1008 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我设置了一个 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 条附言    2023-01-15 17:20:07 +08:00
    感谢大家的回复,补充一下之前漏掉的信息
    1 ,Schedule 用的是多线程,而且目前设置定时的只有三个,早上 8 点一个,晚上 22 点一个,晚上 23 点一个,这三个任务从日志看执行都很快完成了,而且是从服务启动开始就没一个准的,都提前了,应该不是任务积压的问题
    2 ,服务器和容器都是正确的时间,是 CST 时间,而且提前的时间也没有规律,不是每次都提前一个整点,而且每次时间都不一样,目前看还没超过两小时,但没啥规律忽短忽长的,也都不是整数
    第 2 条附言    2023-01-15 17:22:46 +08:00
    3 ,重启过容器和服务,问题依旧,包括把 pod 删了重新冲 habor 拉个新的镜像都没用
    第 3 条附言    2023-01-18 21:57:56 +08:00
    最新进展,懵的一笔,问题恢复了,但原因仍然未知
    我们的整个系统是用 k8s 管理的
    之前把这个定时器所在的服务从 master 迁移到其他 node 节点上了,之后就发生了这个问题
    一直以来都没往那方面想
    这两天实在没招了,尝试迁移回 master 节点试试,结果迁移回去好了
    暂时还没时间做更细致的实验,等放假回去多做做实验再看看

    这是为什么啊~~~
    大家有啥思路也可以提提
    14 条回复    2023-01-15 21:57:48 +08:00
    iamv2er
        1
    iamv2er  
       2023-01-15 11:17:56 +08:00 via iPhone
    重启一下
    TUNGH
        2
    TUNGH  
       2023-01-15 12:01:25 +08:00
    是不是定时任务太多,处理不过来导致延迟了?
    feelinglucky
        3
    feelinglucky  
       2023-01-15 12:55:48 +08:00
    检查下时区
    win301
        4
    win301  
       2023-01-15 15:09:41 +08:00
    @Scheduled 注解,默认就使用一个线程,就是说如果你有多个 @Scheduled 任务,那么都只能使用一个线程来运行程序,如果某个线程很占用时间,那么就会出现你说的现象了,解决办法就是初始化 ThreadPoolTaskExecutor ,然后通过 @Scheduled 注解的定时任务就可以使用到多线程了
    hccsoul
        5
    hccsoul  
       2023-01-15 16:27:35 +08:00
    GMT+8
    ChovyChu
        6
    ChovyChu  
       2023-01-15 16:33:10 +08:00
    @win301 大概率是这个问题,之前也遇到过
    cowcomic
        7
    cowcomic  
    OP
       2023-01-15 17:21:19 +08:00
    @TUNGH
    @feelinglucky
    @ChovyChu
    Schedule 用的是多线程,而且目前设置定时的只有三个,早上 8 点一个,晚上 22 点一个,晚上 23 点一个,这三个任务从日志看执行都很快完成了,而且是从服务启动开始就没一个准的,都提前了,应该不是任务积压的问题
    cowcomic
        8
    cowcomic  
    OP
       2023-01-15 17:22:14 +08:00
    @iamv2er 重启过,问题依旧,包括把 pod 删了重新冲 habor 拉个新的镜像都没用
    cowcomic
        9
    cowcomic  
    OP
       2023-01-15 17:23:02 +08:00
    @feelinglucky
    @hccsoul
    服务器和容器都是正确的时间,是 CST 时间,而且提前的时间也没有规律,不是每次都提前一个整点,而且每次时间都不一样,目前看还没超过两小时,但没啥规律忽短忽长的,也都不是整数
    Terminator0826
        10
    Terminator0826  
       2023-01-15 17:48:45 +08:00 via Android
    可以多写几个 cron 试试,然后只设一个 schedule ,再不行换个依赖版本看看是不是 spring 的 bug
    zhenjiachen
        11
    zhenjiachen  
       2023-01-15 20:44:54 +08:00 via iPhone
    给 jvm 添加一个 timezone 的参数试试
    zsdroid
        12
    zsdroid  
       2023-01-15 21:21:03 +08:00
    我也遇到过设置了 10 点,结果 9 点 58 分就执行了
    cp19890714
        13
    cp19890714  
       2023-01-15 21:32:49 +08:00
    如果还没有找到原因,那就用笨方法:控制变量,一个个尝试。
    列出所有可能导致该问题的原因, 每次改变一个,观察执行结果。
    cowcomic
        14
    cowcomic  
    OP
       2023-01-15 21:57:48 +08:00
    @Terminator0826 spring issue 上的回复是 5.1.x 不维护了,回头换个高版本的试试
    @zhenjiachen 好,回头试一下
    @cp19890714 嗯嗯,之前就是没头绪,看了回复有了一些可以试的了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2536 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:32 PVG 12:32 LAX 21:32 JFK 00:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86