首页 > 其他分享 >Spring Scheduled 三种定时方式

Spring Scheduled 三种定时方式

时间:2022-11-28 09:45:00浏览次数:59  
标签:Scheduled Spring fixRate 错过 时间 fixDelay 线程 定时 执行

Spring Schedule 配置时间的三种方式

  • fixRate: 间隔时间,会根据首次执行时间预先安排固定的时间,错过立即执行
  • fixDelay: 间隔时间,上次结束时间后多少间隔后执行
  • cron: 指定具体时间,错过立即执行

fixRate 运行方式

fixRate 是会根据开始时间预先安排一系列的固定时间点,如果错过了安排的时间点,则立即执行,否则等待下一个执行时间点,如下图 fixRate=5000,每5秒执行一次,第二次执行超过了预先安排的点,导致第三次错过,则第三次立即执行,二第四次则在正常安排的时间点执行,值得注意的是第三次与第四次相隔仅一秒。

Spring Schedule fixRate图例

fixDelay 运行方式

fixDelay 就相对简单一些,上次执行完开始计时,到时间就执行。会有一种特殊情况,如果间隔时间到了,没有可用于执行的线程,那么下次获取到线程后立即执行。如下图 fixDelay=5000,每5秒执行一次:

Spring Schedule fixDelay图例

cron 运行方式

cron 可以指定具体的时间,和 fixRate 有些类似,错过立即执行。我前面的bug就是因为这个原因引起的,一台实例开始执行并加了锁,按理说其他实例相同时间则获取锁失败跳过执行,但另一个实例由于定时任务未能获取到执行线程,延后了,获取到线程后立即执行,导致这个时间不正常,而且前面的锁的时间不够长,导致重复执行。

 
原文:https://im.shellj.com/2022/11/spring-scheduled.html

标签:Scheduled,Spring,fixRate,错过,时间,fixDelay,线程,定时,执行
From: https://www.cnblogs.com/shellj/p/spring-scheduled.html

相关文章

  • springCloud将http请求网关更改为https请求
    如果需要将http请求换成https请求,大致需要三步。第一步:生成证书。网上有很多通过阿里云生成证书的教程。也有通过JDK生成证书。在jdk目录打开命令窗口,执行一下命令:keytoo......
  • SpringBoot整合MybatisPlus实现分页功能
    首先,展示一下项目的主题:  创建数据库,放入一些数据,方便我们接下来的功能演示: 接下来,我们创建一个实体类,然后写对应的接口:packagecom.example.domain;importlo......
  • SpringSecurity从入门到精通
    0.简介SpringSecurity和Shiro比较。中大型的项目都是使用SpringSecurity做安全框架,小项目使用Shiro比较多,因为它比SpringSecurity上手更加简单认证与授权:认证:验证......
  • springBoot 过滤器去除请求参数前后空格(附源码)
    背景:用户在前端页面中不小心输入的前后空格,为了防止因为前后空格原因引起业务异常,所以我们需要去除参数的前后空格!如果我们手动去除参数前后空格,我们可以这样做@......
  • SpringBoot(四):java从配置文件中取值的方式
    一、SpringBoot项目中取yaml配置文件中的值application.yamltest:url:localhost:8080name:rootpassword:123456val:a:1b:2c:3TestC......
  • SpringBoot17(项目部署)
    一、大纲二、操作过程1-(启一个web项目,已经配置好Maven的,按图片步骤点击package)2-(如果打包成功后的效果,Maven一定要配置好)2.1-Bulidingjar:打包后jar包的"位置/路径......
  • Spring Security(6)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~Spring Security使用MySQL保存cookie记录虽然方便,但是目前更多的主流互联网应用都是用NoSQL来保存非业务数据的,SpringSe......
  • Spring Security(6)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Spring Security使用MySQL保存cookie记录虽然方便,但是目前更多的主流互联网应用都是用NoSQL来保存非业务数据的,Spring......
  • springboot的基本使用
    SpringBoot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。使用了Spring框架后已经简化了我们的开发,而SpringBoot......
  • 第2-4-6章 springboot整合规则引擎Drools-业务规则管理系统-组件化-中台
    目录7.Spring整合Drools7.1Spring简单整合Drools7.1.1以上代码均在drools_spring项目中7.2Spring整合Drools+web7.2以上代码均在drools_springweb项目中7.3SpringBo......