首先quartz本身是支持分布式的,通过表来管理各节点之间的关系。
1.去quartz官网下载最新的包 http://www.quartz-scheduler.org/
2、下载之后解压,进入如下目录,创建数据库表
quartz-2.2.3-distribution\quartz-2.2.3\docs\dbTables(选择对应的数据库SQL)
11张表功能说明:
3、创建springboot项目
<!--quartz依赖-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
4.创建 quartz.properties配置文件
org.quartz.scheduler.instanceId=AUTO org.quartz.scheduler.makeSchedulerThreadDaemon=true org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.makeThreadsDaemons=true #线程数量 org.quartz.threadPool.threadCount:20 #线程优先级 org.quartz.threadPool.threadPriority:5 org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.tablePrefix=QRTZ_ #特别注意:此处是quartz的数据源,报错就debug跟踪一下查看dbName org.quartz.jobStore.dataSource = springTxDataSource.schedulerFactoryBean #加入集群 org.quartz.jobStore.isClustered=true #容许的最大作业延 org.quartz.jobStore.misfireThreshold=25000 #调度实例失效的检查时间间隔 org.quartz.jobStore.clusterCheckinInterval: 5000
5. quartz的初始化配置
@Configuration public class SchedulerConfig { // 配置文件路径 private static final String QUARTZ_CONFIG = "/quartz.properties"; // 按照自己注入的数据源自行修改 @Qualifier("writeDataSource") @Autowired private DataSource dataSource; @Autowired private AutoWiredSpringBeanToJobFactory autoWiredSpringBeanToJobFactory; /** * 从quartz.properties文件中读取Quartz配置属性 * @return * @t