SpringBoot 定时任务@Scheduled详解
来源:互联网 发布:网络机房整改目的 编辑:程序博客网 时间:2024/06/07 16:32
@Scheduled是Spring的一个定时任务注解,通过注解配置就能够轻量级的定时任务,简单方便。## <一>注解使用说明 ##
package org.springframework.scheduling.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Repeatable;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import org.springframework.scheduling.annotation.Schedules;@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Schedules.class)public @interface Scheduled { //根据石英表达式执行 String cron() default ""; //指定时间地区,默认系统时间地区 String zone() default ""; //上一次执行成功后多少毫秒后执行 long fixedDelay() default -1L; //同上,只不过值是String形式 String fixedDelayString() default ""; //固定速率执行 long fixedRate() default -1L; //同上,只不过值是String形式 String fixedRateString() default ""; //延迟多少毫秒后执行 long initialDelay() default -1L; //同上,只不过值是String形式 String initialDelayString() default "";}
//石英表达式(每一分钟执行一次),具体的就不在这描述啦@Scheduled(cron = "0 0/1 * * * ?") public void run() { //执行代码}
//定义一个按一定频率执行的定时任务,每隔1分钟执行一次,延迟1秒执行 @Scheduled(fixedRate = 1000 * 60,initialDelay = 1000) public void run() { //执行代码}
//上一个任务完成后,两分钟后执行 @Scheduled(fixedDelay = 1000 * 120) public void run() { //执行代码}
## <二>执行原理##这篇博客对执行原理讲解的很详细。(http://blog.csdn.net/DanLei824/article/details/52149685)## <三>串行,并行##spring task Scheduled默认的线程数是1,多个任务相当于串行,但是对于某个任务来说还是串行,设置了线程数也没用,当前job1没执行完前,下个job1就没法执行,但是不影响job2。要想并行执行多个job,就得修改配置
<task:annotation-driven scheduler="scheduler" mode="proxy"/> <task:scheduler id="scheduler" pool-size="10"/>
或者继承SchedulingConfigurer类并重写其方法即可,如下:
@Configuration@EnableSchedulingpublic class ScheduleConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); } @Bean(destroyMethod="shutdown") public Executor taskExecutor() { return Executors.newScheduledThreadPool(10); }}
0 0
- SpringBoot 定时任务@Scheduled详解
- springboot【25】定时任务@Scheduled
- SpringBoot定时任务(@Scheduled)说明
- Springboot 之 使用Scheduled做定时任务
- SpringBoot 使用Scheduled 定时任务入门
- Springboot之使用Scheduled做定时任务
- Spring 定时任务scheduled详解
- spring @scheduled 定时任务详解
- spring定时任务详解(@Scheduled注解)
- @Scheduled注解 定时任务 cron表达式详解
- spring定时任务详解(@Scheduled注解)
- spring定时任务详解(@Scheduled注解)
- spring定时任务详解(@Scheduled注解)
- spring定时任务详解(@Scheduled注解)
- spring定时任务详解(@Scheduled注解)
- Scheduled注解 定时任务 cron表达式详解
- 【Spring】定时任务详解实例-@Scheduled
- spring定时任务详解(@Scheduled注解)
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- bzoj4455 ZJOI2016 小星星
- UVA11582 幂取模,快速幂
- Ionic css组成(五)
- C#中窗体程序中快捷键的设置
- SpringBoot 定时任务@Scheduled详解
- 水池 数目
- 计算机组成原理
- 一款已上市MMO手游地图同步方案总结
- 高性能MySQL
- Android性能优化典范(三)
- 红黑树
- 用typedef来定义数组
- 技术陷阱之二:字符串是引用类型,不是值类型