美文网首页
理解 Spring 定时任务的 fixedRate 和 fixe

理解 Spring 定时任务的 fixedRate 和 fixe

作者: lbcBoy | 来源:发表于2018-07-13 17:11 被阅读227次

    用过 Spring 的 @EnableScheduling 的都知道,我们用三种形式来部署计划任务,即 @Scheduled 注解的 fixedRate(fixedRateString), fixedDelay(fixedDelayString), 以及 cron. cron 不在这里讨论的范畴。我们着重在如何理解 fixedRate 和 fixedDelay 的区别。

    在 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 的间隔是前次任务的结束与下次任务的开始。

    大致用示意字符串来表示如下(每个 T1, 或 T2 代表任务执行秒数(每次任务执行时间不定),假定 fixedRate 或 fixedDelay 的值是 5 秒,用 W 表示等待的数)

    fixedRate: T1.T1WWWT2.T2.T2WW.T3.T3.T3.T3.T3.T4.T4.T4.T4.T4.T4.T4T5T5WWWT6.T6........

    fixedDelay: T1.T1.WWWWW.T2.T2.T2WWWWW.T3.T3.T3.T3.T3.WWWWW.T4.T4.T4.T4.T4.T4.T4.WWWWWT6.T6......

    一般来说能理解到上面两个场景已经差不多了,相比而言 fixedDelay 简单些,盯着上一次任务的屁股就行。


    感谢网友的分享:https://blog.csdn.net/kypfos/article/details/77882876

    相关文章

      网友评论

          本文标题:理解 Spring 定时任务的 fixedRate 和 fixe

          本文链接:https://www.haomeiwen.com/subject/ssrspftx.html