码迷,mamicode.com
首页 > 编程语言 > 详细

【转】Spring 配置 定时任务

时间:2020-01-06 00:12:13      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:htm   执行   seq   代码   html   方式   star   odi   指定   

官档地址:https://docs.spring.io/spring/docs/5.1.4.RELEASE/spring-framework-reference/integration.html#scheduling

spring里可以做两种方式的定时任务:

1. spring 自带的 定时任务 实现 

@EnableScheduling , @Scheduled

两个注解便可以 开启一个定时 任务(当然,类上面要 声明 @Configuration注解)

技术图片

cron表达式 每分钟的 30秒执行一次.

关于 @Scheduled 支持的配置,请进入源码查看,简单明了。

另外你可能想自己指定线程池,那么你只需要实现SchedulingConfigurer接口。

技术图片

通过 注册机 自定义配置,如下:

技术图片

 

2. 集成Quartz

spring 或 springboot集成Quartz那是相当简单

 首先是依赖:

springboot依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

spring依赖:(不写pom了)

技术图片

其次是代码:

技术图片

技术图片

再者, 需要搞清楚Quartz里面的三个角色:

scheduler (SchedulerFactoryBean)    调度器

-> trigger  (SimpleTriggerFactoryBean或CronTriggerFactoryBean)   触发器

-> job       (JobDetailFactoryBean或MethodInvokingJobDetailFactoryBean).   执行器

如果是springboot,你可以实现 SchedulerFactoryBeanCustomizer 接口去初始化 SchedulerFactoryBean。

技术图片

3. cron表达式

spring自带的定时任务 支持 Cron表达式,参见(org.springframework.scheduling.support.CronSequenceGenerator)

技术图片

quartz的Cron表达式。

 技术图片

两者是有一些区别的,Spring的不支持?号,还要注意区分  * 号的使用,解析规则是不同的,详细请自行查阅官档。

【转】Spring 配置 定时任务

标签:htm   执行   seq   代码   html   方式   star   odi   指定   

原文地址:https://www.cnblogs.com/sanxiao/p/12154070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!