Spring定时任务@Scheduled提前一秒执行

程序中设置了一个定时备份数据库的定时任务,每天0:00执行,用了快数年之久一直好好的,直到今天发现大量天表没有转移,导致大批量卡片流量计算出错,经过查询定时任务居然提前一秒执行了,导致后续代码中获取当前时间,获取的是提前一秒的时间,经过装换2021-11-26, 27号数据就这么变成26号数据。为什么会提前1秒来执行定时任务?

开启bug战斗之路新篇章!

程序中运行已久的代码

突然来的小惊喜

DateTime的精确性和准确性
“现在几点?”这个问题实际上只能以一个反映系统内在准确性水平的精确度来回答。大多数计算机时钟即使在毫秒的正式时间内也不能精确地同步。DateTime结构的确如此精确,但他们几乎肯定不是那么准确。

对于这种问题的探讨是存在,这种问题也是虽然发生概率极小,但发生了就是重大事故。但网络中并没有此问题确切的记载,本博文也不能保证原因,对于这种问题暂时没有深究

对于时间问题的讨论可参考博文 : 日期时间准确与精密

对于时间问题的讨论可参考博文 : 日期时间准确与精密

对于时间问题的讨论可参考博文 : 日期时间准确与精密

修复方法

方法一(推荐)

​ 不改变定时任务时间,依然是整点时间,可以在定时任务中重新获取当前时间,然后进行手动增加一分钟

​ 例如:new Date(new Date().getTime()+60000), 如果不够就十分钟(看你选择)

方案二

​ 改变定时任务时间,在定时任务中延后一分钟即可

网上有版本说增加线程解决,我想说这种方法对于越来越庞大的系统来说是无效的

/*** 设置主线程一次可以进100个线程** @return*/
@Bean
public TaskScheduler taskScheduler() {ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();taskScheduler.setPoolSize(200);return taskScheduler;
}

Spring定时任务@Scheduled提前一秒执行相关推荐

  1. Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)

    Spring定时任务@Scheduled注解使用配置方式(cron表达式.fixedRate和fixedDelay) 序言: 个人推荐一个很方便的在线Cron生成器(网页版):https://qqe2 ...

  2. Spring定时任务@scheduled多线程的使用(@Async注解)

    1.开篇 在Spring定时任务@Scheduled注解使用方式浅窥这篇文章里面提及过,spring的定时任务默认是单线程的,他在某些场景下会造成堵塞,那么如果我们想让每一个任务都起一条线程去执行呢? ...

  3. crontab shell 每5秒执行_linux定时任务crontab 实现每秒执行一次的方法

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} ...

  4. spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java

    spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java spring默认定时任务的使用 package zhangphil.demo;impor ...

  5. Spring定时任务-@Scheduled

    目的:使用Spring的@Scheduled实现定时任务 1.在spring的配置文件中加入以下配置: xmlns:task="http://www.springframework.org/ ...

  6. Spring定时任务scheduled

    Spring定时任务 一. cron 表达式 ​ 1. 概念:Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: ​ 2. Cro ...

  7. spring 定时任务@Scheduled详解

    1.注解@Scheduled只能用于满足下面两个条件的方法上: (1)没有返回类型,或者说返回类型为void: (2)没有参数: 2.springBoot 定时任务开启方式和使用形式 Springbo ...

  8. 【定时任务】——Spring定时任务Scheduled

    定时任务在日常开发过程中非常常见,而且在日常的项目开发中也有多种实现方式,而且做任务调度的框架有很多种,小编最近的感受,如果想真正使用好任务调度还是存在困难的,所以分步学习,逐个击破!在这篇文章小编主 ...

  9. Spring定时任务@Scheduled注解使用方式浅窥(cron表达式、fixedRate和fixedDelay)

    1.开篇 spring的@Scheduled定时任务相信大家都是十分熟悉.最近在使用过程中发现了一些问题,写篇文章,和大家分享一下.结论在最后,不想看冗长过程的小伙伴可以直接拉到最后看结论. 2.简单 ...

  10. Spring 定时任务@Scheduled用法

    基本用法 @Scheduled 由Spring定义,用于将方法设置为调度任务.如:方法每隔十秒钟被执行.方法在固定时间点被执行等 1. @Scheduled(fixedDelay = 1000)    ...

最新文章

  1. 独家 | R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)
  2. 页面滑动至某处,固定导航。
  3. 笔记-中项案例题-2018年下-质量管理
  4. 【NLP】NLP模型BERT和经典数据集!
  5. Web前端学习路线分享,初学者不要错过!
  6. 关于list 数据类型 和 ndarray 数据类型获取索引的小坑
  7. 【OpenCV 例程200篇】97. 反谐波平均滤波器
  8. 腾讯再发股票吸引人才,受益2.57万名员工,人均超8万港元
  9. ES 集中式日志分析平台 Elastic Stack(介绍)
  10. java代码从服务器拉取到本地,集成到idea报错
  11. getpriority java_Java Thread类的最终int getPriority()方法(带示例)
  12. 对话|俞栋:在人工智能的很多应用场景,语音识别是一个入口
  13. Dreamweaver中如何设定文字——大小、字体、颜色
  14. Notion为什么能让我放弃手账
  15. 概率论01-样本空间,随机事件
  16. 记一款游戏--《程序员升职记》
  17. Linux 学习网站汇总
  18. 苹果照片未删却不见了_iPhone手机照片不见的解决方法
  19. java毕业设计——基于java+J2EE+sqlserver的在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统
  20. 手推Adaboost

热门文章

  1. 软件工程第1次作业—词频统计
  2. 整合Spring Data JPA与Spring MVC: 分页和排序pageable
  3. 系统监控技术 -- 主机监控,信息转发,前台显示
  4. 二叉搜索树的后序遍历序列(C++)
  5. 游戏开发之点和圆的关系,附上C++类结构(C++基础)
  6. 计算原矩阵Jaccard相似度和签名矩阵的Jaccard相似度
  7. 2021年软考DHCP技术点+配置
  8. Linux之chrony时间同步服务、ntp协议
  9. Android调试神器stetho使用详解和改造
  10. 双十一大战收官:荣耀反超苹果,以新思维新模式傲视群雄