Spring中的@Scheduled定时任务注解详解

 更新时间:2023年09月25日 09:30:48   作者:骑个小蜗牛  
这篇文章主要介绍了Spring中的@Scheduled定时任务注解详解,要使用@Scheduled注解,首先需要在启动类添加@EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@Scheduled注解,执行计划任务,需要的朋友可以参考下

1.注解源码

&#64;Target({<!-- -->ElementType.METHOD, ElementType.ANNOTATION_TYPE})&#64;Retention(RetentionPolicy.RUNTIME)&#64;Documented&#64;Repeatable(Schedules.class)public &#64;interface Scheduled {<!-- -->String cron() default &#34;&#34;;String zone() default &#34;&#34;;long fixedDelay() default -1;String fixedDelayString() default &#34;&#34;;long fixedRate() default -1;String fixedRateString() default &#34;&#34;;long initialDelay() default -1;String initialDelayString() default &#34;&#34;;}

2.注解参数

参数说明示例
cron任务执行的cron表达式0/2 * * * * ?
zonecron表达时解析使用的时区,默认为服务器的本地时区。
使用java.util.TimeZone#getTimeZone(String)方法解析
GMT-8:00
fixedRate固定速率
上一次任务执行开始到下一次执行开始的间隔时间固定,单位为ms。
若在调度任务执行时,上一次任务还未执行完毕,会加入worker队列,等待上一次执行完成后,马上执行下一次任务
1000
fixedRateString与fixedRate一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S
fixedDelay固定延迟
上一次任务执行结束到下一次执行开始的间隔时间固定,单位为ms。
1000
fixedDelayString与fixedDelay一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S
initialDelay首次延迟多长时间后执行,单位ms。
之后按照fixedRate、fixedRateString、fixedDelay、fixedDelayString指定的规则执行,需要指定其中一个规则。
注意:不能和cron一起使用
1000
initialDelayString与initialDelay 一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S

3.示例

cron

@Scheduled(cron = "0/2 * * * * ?")

从0秒开始,每隔两秒执行一次。

zone

@Scheduled(cron = "0/2 * * * * ?", zone = "GMT-8:00")

从0秒开始,每隔两秒执行一次。

指定时间使用的时区为东八区。

fixedRate

@Scheduled(fixedRate = 1000)

1秒执行一次,上次执行开始后过1秒执行下一次。若到了1秒后但上次执行还未完成,会加入worker队列,等待上一次执行完成后,马上执行下一次。

fixedRateString

@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")

都表示1秒执行一次,上次执行开始后过1秒执行下一次。若到了1秒后但上次执行还未完成,会加入worker队列,等待上一次执行完成后,马上执行下一次。

fixedDelay

@Scheduled(fixedDelay = 1000)

1秒执行一次,上次执行完成后过1秒继续执行下一次。

fixedDelayString

@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")

都表示1秒执行一次,上次执行完成后过1秒继续执行下一次。

initialDelay

@Scheduled(initialDelay = 5000, fixedRate = 2000)

首次5秒后执行,后续每隔2秒执行一次(遵循fixedRate 规则)

@Scheduled(initialDelay = 5000, fixedDelay = 2000)

首次5秒后执行,后续每隔2秒执行一次(遵循fixedDelay 规则)

注意:initialDelay、initialDelayString都不能和cron一起使用

initialDelayString

@Scheduled(initialDelayString = "5000", fixedRate = 2000)

首次5秒后执行,后续每隔2秒执行一次(遵循fixedRate 规则)

@Scheduled(initialDelayString = "5000", fixedDelay = 2000)

首次5秒后执行,后续每隔2秒执行一次(遵循fixedDelay 规则)

注意:initialDelay、initialDelayString都不能和cron一起使用

到此这篇关于Spring中的@Scheduled定时任务注解详解的文章就介绍到这了,更多相关@Scheduled定时任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现文件上传下载

    java实现文件上传下载

    这篇文章主要为大家详细介绍了java实现文件上传下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • SpringMVC 参数绑定相关知识总结

    SpringMVC 参数绑定相关知识总结

    这篇文章主要介绍了SpringMVC 参数绑定相关知识总结,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-03-03
  • Java Spring Security认证与授权及注销和权限控制篇综合解析

    Java Spring Security认证与授权及注销和权限控制篇综合解析

    Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是 Shiro 的天下
    2021-10-10
  • MyBatis使用<foreach>标签like查询报错解决问题

    MyBatis使用<foreach>标签like查询报错解决问题

    这篇文章主要介绍了MyBatis使用<foreach>标签like查询报错解决问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Java 仿天猫服装商城系统的实现流程

    Java 仿天猫服装商城系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个仿天猫服装商城系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • springboot实现访问多个redis库

    springboot实现访问多个redis库

    这篇文章主要介绍了springboot实现访问多个redis库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java的并发编程之CyclicBarrier解析

    Java的并发编程之CyclicBarrier解析

    这篇文章主要介绍了Java的并发编程之CyclicBarrier解析,CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次,需要的朋友可以参考下
    2023-11-11
  • Java数据结构常见几大排序梳理

    Java数据结构常见几大排序梳理

    Java常见的排序算法有:直接插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序等。本文详解介绍它们的实现以及图解,需要的可以参考一下
    2022-03-03
  • Lombok中关于@Data的使用解析

    Lombok中关于@Data的使用解析

    这篇文章主要介绍了Lombok中关于@Data的使用解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 详解IDEA用maven创建springMVC项目和配置

    详解IDEA用maven创建springMVC项目和配置

    本篇文章主要介绍了详解IDEA用maven创建springMVC项目和配置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论