Spring Boot创建定时任务

80 阅读1分钟

项目中经常要用到定时任务,比如发邮件短信、清理缓存等等 spingboot 创建定时任务非常简单,只需要几个注解就可以。 下面我给一个定时清理缓存的任务,测试程序缓存功能的时候经常要用到。

1、启动定时任务配置

只需要在 Application上加上 @EnableScheduling 注解, @EnableCaching是启动缓存配置的

392503688-5c90d49b3e847_fix732.webp

2、创建需要定时执行的方法

在方法上加上注解 @Scheduled(fixedRate=10000) ,下图是一个定时清理缓存的方法 每10s执行一次:

1275789675-5c90d5da76e25_fix732.webp

  • 执行结果:

3335971876-5c90d69f27648_fix732.webp

参加spring官方案例: spring.io/guides/gs/s…

3、@Scheduled注解参数:

  • @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行

  • @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行

    这个与fixedRate区别在于,可以保证任务不会重叠执行, fixedRate=5000表示每5s中启动任务,如果任务执行时间超过了5s中那么就会有多个任务同时执行。 fixedDelay=5000s会等带上个任务执行完毕才执行,

  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次

  • @Scheduled(cron="*/5 * * * * *") :通过cron表达式定义规则

详细请看官方文档 spring.io/guides/gs/s…