Spring定时任务——注解@Scheduled实现定时任务
来源:互联网 发布:js radio 美化样式 编辑:程序博客网 时间:2024/06/05 10:06
spring官网:http://spring.io/guides/gs/scheduling-tasks/
Scheduled的注解定义了一个特定的方法运行的时间。可以使用fixedRate指定从调用开始每次延迟多少毫秒继续调用。还有其他选项,比如fixedDelay,它指定从调用开始延时多少毫秒继续调用下一个周期。您还可以使用@Scheduled(cron=”. . “)来表达更复杂的任务调度。
一张图来说明(任务执行长度超过周期的情况):
虽然定时任务可以嵌入到web应用程序和WAR文件中,但下面演示一种更简单的方法创建了一个独立的应用程序。您将所有的内容打包在一个单一的、可执行的JAR文件中,用一个传统Java main()方法驱动。这也就是springboot的启动类。
package hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class); }}
fixedRate
fixedRate表示从调用开始每次延迟多少毫秒继续调用
用法@Scheduled(fixedRate=5000),5000的单位是毫秒,也就是间隔时间是5秒。
fixedDelay
fixedDelay表示从调用开始延时多少毫秒继续调用下一个周期
用法@Scheduled(fixedDelay=5000),5000的单位是毫秒,也就是间隔时间是5秒。
initialDelay
fixedDelay表示在第一次执行fixedRate()或fixedDelay()任务之前延迟的毫秒数。
用法@Scheduled(fixedDelay=5000, initialDelay=10000),单位是毫秒,表示第一次执行fixedDelay()任务之前先延迟10秒。
@Scheduled(cron=”0 0 * * * *”)
cron表达式相比于前几个是比较复杂的。
该模式是6个(或者7个)单独的空间分隔字段的列表:表示秒、分钟、小时、日、月、星期、(年)。
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
星期(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
年份(1970-2099)(可选)
取值可以是*,?,8-10,8/10,*/10,MON-FRI等类似语法,有什么区别呢?
其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于”月份中的日期”和”星期中的日期”这两个元素互斥的,必须要对其中一个设置?。现在明白了吧!
比如一下几个例子
"0 0 * * * *" = 每天每时整点"*/10 * * * * *" = 每十秒(10:20:00, 10:20:10, 10:20:20 ...)触发"0 0 8-10 * * *" = 每天早上8:00、9:00 和 10:00 触发"0 0 6,19 * * *" = 每天6:00 和 19:00 触发"0 0/30 8-10 * * *" = 每天8:00, 8:30, 9:00, 9:30, 10:00 和 10:30 触发"0 0 9-17 * * MON-FRI" = 朝九晚五(周一至周五9:00-17:00的整点)触发"0 0 0 25 12 ?" = 圣诞节(每年的12月25日00:00)触发"0 15 10 L * ?" = 每月最后一日的上午10:15触发 "0 15 10 ? * 6L" = 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2017-2027" = 2017年至2027年的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" = 每月的第三个星期五上午10:15触发
- Spring定时任务——注解@Scheduled实现定时任务
- spring注解scheduled实现定时任务
- spring注解方式实现定时任务@Scheduled
- 使用spring @Scheduled注解实现定时任务、
- spring @Scheduled注解 定时任务
- spring @Scheduled注解 定时任务
- Spring Scheduled实现定时任务
- @Scheduled注解,定时任务
- @Scheduled 定时任务注解
- Spring 定时任务 @Scheduled
- spring scheduled定时任务
- Spring定时任务(@Scheduled)
- spring 定时任务 Scheduled
- Spring @Scheduled 定时任务
- Spring @Scheduled 定时任务
- 使用spring @Scheduled注解执行定时任务、
- 使用spring @Scheduled注解执行定时任务、
- 使用spring @Scheduled注解执行定时任务
- svn提交时不显示文件的问题
- 谷歌浏览器跨域问题解决
- Revit 二次开发 PickObjects完成按钮的触发
- 基于AFNetworking3.X的二次封装及拓展
- spark伪分布standalone搭建
- Spring定时任务——注解@Scheduled实现定时任务
- 深度学习中的卷积与反卷积
- 线程
- Xml的schema约束
- CentOS重启ssh服务命令
- JVM GC时堆内存中新生代的复制算法
- Java注解(Annotation)详解(一)——概述及JDK自带注解
- Ajax提交form表单(包括文件上传)
- 使用Pandas对数据进行筛选和排序