1.首先引入jar包:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz-jobs -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
Markup
2.配置xml文件:quartz-config.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.xsd">
<!-- 配置Job类 -->
<bean id="DemoJob" class="kbaseSync.KbaseJob"></bean>
<!--添加数据到数据库任务-->
<!-- 配置JobDetail -->
<bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 执行目标job -->
<property name="targetObject" ref="DemoJob"></property>
<!-- 要执行的方法 -->
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 配置tirgger触发器 -->
<bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- jobDetail -->
<property name="jobDetail" ref="springQtzJobMethod"></property>
<!-- cron表达式,执行时间 每20分钟执行一次 -->
<property name="cronExpression" value="0/20 * * * * ?"></property>
</bean>
<!--定时删除数据库数据任务-->
<!-- 配置Job类 -->
<bean id="DailyReportJob" class="kbaseSync.DailyReportJob"></bean>
<!-- 配置JobDetail -->
<bean id="springQtzJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 执行目标job -->
<property name="targetObject" ref="DailyReportJob"></property>
<!-- 要执行的方法 -->
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 配置tirgger触发器 -->
<bean id="cronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- jobDetail -->
<property name="jobDetail" ref="springQtzJob"></property>
<!-- cron表达式,执行时间每天0点执行一次 -->
<!-- 可以根据自己的需求指定执行时间 -->
<property name="cronExpression" value="0 0,58 16 * * ?"></property>
</bean>
<!-- 配置调度工厂 -->
<bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger1"></ref>
<ref bean="cronTrigger2"></ref>
</list>
</property>
</bean>
</beans>
Markup
3、创建任务Job类(自定义类)
package kbaseSync;
import kbaseSync.Core.DailyReportProgram;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 每日报告生成
* @author SongBin on 2019/9/5.
*/
public class DailyReportJob {
private Logger log = LoggerFactory.getLogger(DailyReportJob.class);
private DailyReportProgram dailyReportProgram = new DailyReportProgram();
public void execute() throws JobExecutionException {
log.info(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
dailyReportProgram.sync();
}
}
Java
4、配置Springboot启动类
在Springboot启动类上添加注解
@ImportResource("classpath:quartz-config.xml")
到这里就是所有配置
/**
* @author SongBin on 2019/9/6.
*/
package kbaseSync;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource("classpath:quartz-config.xml")
public class SyncApplication {
public static void main(String[] args) {
SpringApplication.run(SyncApplication.class, args);
}
}
Java
注意:本文归作者所有,未经作者允许,不得转载
更多内容请访问:IT源点