SpringBoot定时任务主要由两个注解完成。
@Scheduled加在方法上面。
@EnableScheduling加在类上面。可以是Application类,也可以是@Component类,还可以是@Controller类等。了解springcloud架构可以加求求:三五三六二四七二五九
如下:
@SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
如果@EnableScheduling不想加在Application上方,也可以如下:
@Component @EnableScheduling public class ScheduledTasks { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { System.out.println("现在时间:" + dateFormat.format(new Date())); } }
@Scheduled用法如下:
@Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行 @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行 @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次 @Scheduled(cron="0 */1 * * * ? ") :通过cron表达式定义规则,表示每隔1分钟执行一次
cron表达式的用法如下:
cron表达式依次表示 [秒] [分] [小时] [日] [月] [周] [年]
常见的Cron示例如下:
*/5 * * * * ? 表示每隔5秒执行一次 0 */1 * * * ? 表示每隔1分钟执行一次 0 15 10 ? * MON-FRI 表示在每个周一,二, 三和周四的 10:15 AM 0 15 10 10 * ? 表示每月10号的 10:15 AM 0 15 10 L * ? 每月最后一天的 10:15 AM 0 10 10 ? * 6L 每月最后一个周五的 10:10 AM 0 10 10 ? * 6L 2014-2017 在 2014, 2015, 2016, 和 2017 年中的每月最后一个周五的 10:10 AM 0 15 10 ? * 6#3 每月第三个周五的 10:15 AM 0 0 12 1/5 * ? 每月从第一天算起每五天的 12:00 PM (中午) 0 11 11 11 11 ? 每一个 11 月 11 号的 11:11 AM 0 10,44 14 ? 3 WED 三月份每个周三的 2:10 PM 和 2:44 PM
其中,表达式中的特殊符号的意义是:
“*” 代表这个时间单位的整个时间段.比如 *放在秒上面,就是指任意秒,*放在分上面就是任意分。 “?”字符:表示不确定的值(注意:? 号只能用在日和周域上,但是不能在这两个域上同时使用。假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?,如:0 0 0 * * ?) “,”字符:指定数个值 “-”字符:指定一个值的范围 “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X “W”字符:指定离给定日期最近的工作日(周一到周五) “#”字符:表示该月第几个周X。5#2表示该月第2个周四(每周的第一天是从周日开始的,即:周日的值为:1)
相关推荐
主要介绍了spring-boot通过@Scheduled配置定时任务,文中还给大家介绍了springboot 定时任务@Scheduled注解的方法,需要的朋友可以参考下
Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析,做了一些测试说明了各个参数的作用
1. SpringBoot 自定义线程池以及多线程间的异步调用(@Async、@EnableAsync) 2.Java多线程之定时任务 以及 SpringBoot多线程实现定时任务 3.@EnableScheduling 与 @Scheduled
spring boot @scheduled注解 cron 表达式实现计划任务调度。
基于SpringBoot和Spring自带的schedul-springboot-task-scheduled
主要介绍了springboot 定时任务@Scheduled实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在不停服务的情况下,动态修改Spring定时任务的执行周期,即动态修改定时任务的cron参数。
主要介绍了SpringBoot执行定时任务@Scheduled的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了spring 定时任务@Scheduled的相关资料,文中通过示例代码介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
通过本文,读者将能够了解如何在Spring Boot应用中轻松创建和管理定时任务。 # @Scheduled注解简介 在Spring框架中,@Scheduled注解用于标记一个方法,使其能够在固定的时间间隔内自动执行。这个注解主要基于Java的...
使用spring @Scheduled注解执行定时任务
spring @Scheduled定时任务代码
springboot双数据库定时同步,可以是mysql,SqlServer
本篇文章中主要介绍了Spring Boot中使用@Scheduled创建定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了SpringBoot中使用@Scheduled注解创建定时任务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
@scheduled任务调度使用详解及@scheduled与多线程和@Async异步任务结合使用
Spring boot开启定时任务的三种方式 零、前言 第一种也就是最简单的一种:基于注解 (@Scheduled)的方式; 第二种:基于接口 (SchedulingConfigurer); 第三种:基于注解设定多线程定时任务。 一、基于@Scheduled注解...
- chapter4-1-1:[使用@Scheduled创建定时任务](http://blog.didispace.com/springbootscheduled/) - chapter4-1-2:[使用@Async实现异步调用](http://blog.didispace.com/springbootasync/) #### 日志管理 - ...