1.基本概念
定时任务组件Quartz Quartz介绍 Quartz是Job scheduling(作业调度)领域的一个开源项目,Quartz既可以单独使用也可以跟spring框 架整合使用,在实际开发中一般会使用后者。使用Quartz可以开发一个或者多个定时任务,每个定时任 务可以单独指定执行的时间,例如每隔1小时执行一次、每个月第一天上午10点执行一次、每个月最后 一天下午5点执行一次等。
例如我们在登陆中输入手机号验证码时使用的倒计时就是使用的定时任务组件。
2.官网
3.使用示例
①引入依赖包
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
</dependencies>
②定义一个简单的方法
public class JobDemo {
public void run(){
System.out.println("success"+new Date());
}
}
③定义spring-jobs.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
">
<!--注册自定义job-->
<bean id="jobDemo" class="com.jobs.JobDemo"></bean>
<!--注册JobDetail,通过反射作用来调用job-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--注入目标对象-->
<property name="targetObject" ref="jobDemo"/>
<!--注入目标方法-->
<property name="targetMethod" value="run"/>
</bean>
<!--注册一个触发器,指定触发的时间-->
<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--注入jobDetail-->
<property name="jobDetail" ref="jobDetail"/>
<!--指定触发的时间,基于Cron表达式,10秒中执行一次-->
<property name="cronExpression">
<value>0/10 * * * * ?</value>
</property>
</bean>
<!--注册一个统一的调度工厂,通过这个调度工厂调度任务-->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--注入多个触发器-->
<property name="triggers">
<list>
<ref bean="myTrigger"/>
</list>
</property>
</bean>
</beans>
④main方法执行
public static void main(String[] args) {
new ClassPathXmlApplicationContext("spring-jobs.xml");
}
补充:Cron表达式在线生成器