[Spring Boot]定时任务因系统时间修改之后无法执行

问题描述

当Spring Boot启动时,当前时间为2024-01-01 00:00:00。
此时你创建了任务:
每10秒钟触发一次定时任务

@Scheduled(cron = "0/10 * * * * ? ")
public void scheduledTask() {
}

此时你手动修改了系统时间,修改为2023-12-01 12:00:00。
这是,就会出现问题。。。
系统时间虽然改变,但是Java调度器任然认为,启动的时间为2024-01-01 00:00:00。
而此时10秒钟后执行任务,也就是下次的调度任务时间为2024-01-01 00:00:10。调度任务时间不会因为系统时间的修改而发生变化。

解决方式

对于固定时间间隔的我们应更换注解方式:
使用如下方式,只做时间间隔的判断,就不会因为系统时间而影响了。

@Scheduled(fixedDelay = 10000L)

放弃使用原先的cron表达式的定时任务

@Scheduled(cron = "0/10 * * * * ? ")
public void scheduledTask() {
}

相关推荐

  1. [Spring Boot]定时任务系统时间修改之后无法执行

    2024-07-15 07:18:03       20 阅读
  2. springboot定义cron定时任务执行

    2024-07-15 07:18:03       57 阅读
  3. windows执行定时任务

    2024-07-15 07:18:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 07:18:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 07:18:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 07:18:03       58 阅读
  4. Python语言-面向对象

    2024-07-15 07:18:03       69 阅读

热门阅读

  1. Redis避坑疑难杂症

    2024-07-15 07:18:03       20 阅读
  2. Leetcode【零钱兑换】

    2024-07-15 07:18:03       27 阅读
  3. 配置提交节点

    2024-07-15 07:18:03       24 阅读
  4. 【信息收集】 IP信息收集

    2024-07-15 07:18:03       20 阅读
  5. 线程同步的使用(一)

    2024-07-15 07:18:03       26 阅读
  6. lvs集群

    lvs集群

    2024-07-15 07:18:03      27 阅读
  7. Bootstrap 栅格系统的工作原理?

    2024-07-15 07:18:03       24 阅读
  8. Nacos

    Nacos

    2024-07-15 07:18:03      25 阅读