1、Maven包的导入
<quartz.starter.version>2.0.0.M2</quartz.starter.version>
.............
<!--quartz 版本号为2.3.0-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
<version>${quartz.starter.version}</version>
</dependency>
2、quartz.properties
# 使用默认的调度器
#org.quartz.scheduler.instanceName=DefaultQuartzScheduler
org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
#线程池配置
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=10
org.quartz.threadPool.threadPriority=5
#配置是否启动自动加载数据库内的定时任务
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
#持久化配置
org.quartz.jobStore.misfireThreshold=50000
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.dataSource=qzDS
org.quartz.dataSource.qzDS.connectionProvider.class=com.cainiao.transform.config.DruidConnectionProvider
org.quartz.dataSource.qzDS.maxConnections=10
org.quartz.dataSource.qzDS.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.qzDS.validationQuery=SELECT 1 FROM DUAL
org.quartz.dataSource.qzDS.URL=jdbc:mysql://localhost:3306/transform?useSSL=false
org.quartz.dataSource.qzDS.user=root
org.quartz.dataSource.qzDS.password=123456
org.quartz.dataSource.qzDS.validateOnCheckout=false
#支持集群
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.useProperties=true
org.quartz.jobStore.clusterCheckinInterval=15000
3、定义Druid数据库连接池
/**
* Quartz默认采用Innodb作为数据库连接池,此为自定义数据库连接池配置。
*
* @author songfan
* @since 2019-06-06 9:44 PM
*/
public class DruidConnectionProvider implements ConnectionProvider {
/**
* JDBC驱动
*/
public String driver;
/**
* JDBC连接串
*/
public String URL;
/**
* 数据库用户名
*/
public String user;
/**
* 数据库用户密码
*/
public String password;
/**
* 数据库最大连接数
*/
public Integer maxConnections;
/**
* 数据库SQL查询每次连接返回执行到连接池,以确保它仍然是有效的。
*/
public String validationQuery;
private Boolean validateOnCheckout;
public static final int DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = 20;
/**
* Druid连接池
*/
public DruidDataSource datasource;
@Override
public Connection getConnection() throws SQLException {
return datasource.getConnection();
}
@Override
public void shutdown() throws SQLException {
datasource.close();
}
@Override
public void initialize() throws SQLException