【转】Spring 配置 定时任务

官档地址: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的不支持?号,还要注意区分  * 号的使用,解析规则是不同的,详细请自行查阅官档。

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

时间: 2024-10-21 20:46:26

【转】Spring 配置 定时任务的相关文章

spring配置定时任务

<bean id="myTask" class="org.jks.schedule.MyTask" /> <bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask" ref="myTas

Spring Task定时任务的配置和使用详解

spring中使用定时任务 1.基于xml配置文件使用定时任务 首先配置spring开启定时任务 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:task

Spring Boot定时任务的使用

Spring Boot中配置定时任务极其简单...... import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import java.text.SimpleDateFormat

Spring Task定时任务

Spring Task定时任务 1.基于Spring Task的任务调度方法: Spring框架自带的异步执行(TaskExecutor)和任务调度(TaskScheduler)接口. Spring Task官方地址: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html 以下是task任务调度配置:spring-tasks.xml <?xml version="1

Java spring quartz 定时任务

首先,需要导入quartz 的jar包 ① applicationContext.xml <!-- 轮询任务 --> <import resource="classpath:/conf/quartz/ctmanage-schedule.xml" /> ② ctmanage-schedule.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q

java配置定时任务的几种配置方式及示例

使用java配置定时任务的几种配置方式及示例 (2010-08-21 13:16:10) 转载▼ 标签: spring 定时器 配置 it 分类: java Spring定时器,主要有两种实现方式,包括Java Timer定时和Quartz定时器! 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 package com.land; import java.util.Date;import java.util.TimerTask; public cla

Spring - spring task 定时任务

spring task 实现定时任务 由于Spring3.0以后自带spring task定时任务工具,使用方法也非常简单,在Spring的架构下不需要额外引入其他jar包,同时还支持注解和配置文件两种形式. 一.注解方式配置(@Scheduled) 1.编写定时任务实体类 @Component public class SpringTaskJob { /* * cron : 秒,分,时,日,月,星期,年(可选) */ @Scheduled(cron = "0/5 * * * * ?"

在SpringBoot中配置定时任务

前言 之前在spring中使用过定时任务,使用注解的方式配置很方便,在SpringBoot中的配置基本相同,只是原来在spring中的xml文件的一些配置需要改变,在SpringBoot中也非常简单. 已经加入我的github模版中:https://github.com/LinkinStars/springBootTemplate 定时任务的分类 所谓定时任务,就是在项目启动之后,定时的去执行一个任务,从而满足业务的需要. 定时任务分为下面几种,串行,并行,同步,异步 串行,并行:当配置了多个定

springboot整合Quartz实现动态配置定时任务

前言 在我们日常的开发中,很多时候,定时任务都不是写死的,而是写到数据库中,从而实现定时任务的动态配置,下面就通过一个简单的示例,来实现这个功能. 一.新建一个springboot工程,并添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>