@scheduled 执行一次_Spring中使用@Scheduled注解快速开发定时任务

b7d21880de9b8931b02cc0771cfc01f3.png

项目开发中很多时候需要定时执行某项任务,这个时候就需要用到定时任务了,Spring3.1开始让计划任务变得非常简单,只需要几个注解就能快速开启计划任务的支持。

首先开启定时任务使用@EnableScheduling注解

然后需要配置定时任务执行类

@Componentpublic class TestTask {private static final Logger logger = LoggerFactory.getLogger(Task.class);@Scheduled(fixedRate = 3000)public void runPerFiveSeconds() {logger.info("执行了");}@Scheduled(cron = "0/5 * 9 * * ?")public void runCron() {logger.info("cron");}}

@Scheduled注解主要有三种配置执行时间的方式,cron,fixedRate,fixedDelay.

fixedRate

表示自上一次执行时间之后多长时间执行,以ms为单位. 如

@Scheduled(fixedRate = 1000 * 3)//每间隔3000秒执行一次,不管上次是否执行完

fixedRateString

有一个类似的参数叫fixedRateString,是字符串的形式,支持占位符. 如

@Scheduled(fixedRateString = "1000")

可以使用(与spring@value注解一样)

@Scheduled(fixedRateStirng="${fixedRateString}")

fixedDelay

fixedDelay与fixedRate有点类似,不过fixedRate是上一次开始之后计时,fixedDelay是上一次结束之后计时,也就是说,fixedDelay表示上一次执行完毕之后多长时间执行,单位也是ms.

@Scheduled(fixedDelay = 1000 * 3) //上一次执行完毕后等待3000秒再次执行

fixedDelayString

与fixedRateString类似,也是支持占位符

@Scheduled(fixedDelayString = "${fixedDelay}")

initialDelay

initialDelay表示首次延迟多长时间后执行,单位ms,之后按照cron/fixedRate/fixedRateString/fixedDelay/fixedDelayString指定的规则执行,需要指定其中一个规则.

@Scheduled(initialDelay=1000,fixedRate=1000) //首次运行延迟1s

5.2 initialDelayString

与initialDelay类似,不过是字符串,支持占位符.

@Scheduled(initialDelayString = "${initialDelay}",cron = "0 0 0 4 4 ?") //按照配置文件initialDelay指定的时间首次延迟,并于每年4月4日0时0分0秒执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值