Spring Task定时任务之详解Cron fixedDelay fixedRate

Spring Task定时任务之详解cron fixedDelay fixedRate

背景介绍

Spring非常强大,自带了Spring Task任务调度框架,基本能满足日常需求。比之更全面的框架还有quartz。相对的,学习成本也更高,有待下次学习分享。

Spring Task

Spring Task也分为注解和xml配置两种形式,由于开发的简洁性和便捷性,在开发时,一般推荐使用注解形式,只需在方法上添加一个注解@Scheduled,即代表开始定时任务。
@Scheduled有三个属性:

  1. cron :cron表达式是定时任务的关键,通过这个表达式能够清晰的知道任务什么时候执行,对于执行时间的设定非常的灵活。cron表达式的详细内容将在下次介绍分享;
  2. fixedDelay:fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次;
  3. fixedRate :fixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行。;

区别

在 Spring 的 Scheduled 注解的 JavaDoc 对此的解释很简单

public abstract long fixedRate 
Execute the annotated method with a fixed period in milliseconds between invocations.

public abstract long fixedDelay 
Execute the annotated method with a fixed period in milliseconds between the end of the last invocation and the start of the next.

** fixedRate 任务两次执行时间间隔是任务的开始点,而 fixedDelay 的间隔是前次任务的结束与下次任务的开始**
在这里插入图片描述
以上都是在单线程的情况下执行情况。若是有线程阻塞的情况发生,就需要多线程执行定时任务,这种情况又不大一样了。具体情况请参考:
https://yanbin.blog/spring-schedule-runner-threads/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值