定时任务 @Scheduled cron、fixedRate、fixedDelay、fixedDelayString、fixedRateString

谁借莪1个温暖的怀抱¢ 2022-12-10 07:19 291阅读 0赞

cron 可以设置每隔周期时间执行,也可以指定在某个时间执行; 每隔指定时间执行任务,首先判断上次任务是否已经执行结束,若是已经执行结束,则执行此次任务,若是没有执行完成,则在下一次指定时间再次重复以上步骤。
例如:每隔3秒执行定时任务,0秒开始第一次执行,在第3秒的时候判断上次任务是否已经执行结束,若是已经结束,则执行此次任务,若是没有结束则在第6秒的时候再次检查任务是否执行完成………..

fixeddelay 上一次任务结束后等待指定时间执行下次任务;例如:每隔3秒执行定时任务,0秒开始第一次执行,任务执行花费5秒,则第二次任务执行开始时间是第 0+5+3=8 秒

fixedrate 每隔指定时间执行任务,若是执行任务的时间超过定时的时间,则每次上一次任务执行完毕后下一次任务立刻执行,否则上次任务开始每隔指定时间执行任务。 例如:每隔3秒执行定时任务,0秒开始第一次执行,
若是任务执行了4秒,则第二次任务执行开始时间是第4秒,若是任务执行了6秒,则第二次任务执行开始时间是第6秒;若是任务执行了2秒,则第二次任务执行开始时间是第3秒

fixedDelayString 同fixeddelay,值可以从配置文件获得

fixedRateString 同fixedrate,值可以从配置文件获得

  1. @Scheduled(cron ="0/1 * * * * ? ")
  2. public void testCron() {
  3. log.info("开始 testCron1 test ---------");
  4. }
  5. @Scheduled(fixedRate = 4000)
  6. public void testFixedRate() {
  7. log.info("开始 fixedRate test ---------");
  8. }
  9. @Scheduled(fixedDelay = 4000L)
  10. public void testFixedDelay() {
  11. log.info("开始 fixedDelay test ---------");
  12. }
  13. /**
  14. * @Description: fixedDelayString 可以从配置文件取值
  15. */
  16. @Scheduled(fixedDelayString = "${fixedDelayString}")
  17. public void TestFixedDelayString() {
  18. log.info("开始 fixedDelayString test ---------");
  19. }
  20. /**
  21. * @Description: fixedRateString 可以从配置文件取值
  22. */
  23. @Scheduled(fixedRateString = "${fixedRateString}")
  24. public void TestFixedRateString() {
  25. log.info("开始 fixedRateString test ---------");
  26. }

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Scheduled定时任务

    Scheduled是spring自带的定时任务 由Spring定义,用于将方法设置为调度任务。如:方法每隔十秒钟被执行、方法在固定时间点被执行等 建议Cron表达式配合使用

    相关 @Scheduled定时任务

    @Scheduled注解的使用这里不详细说明,直接对8个参数进行讲解。 参数详解 1. cron 该参数接收一个cron表达式,cron表达式是一个字符串,字符串