Quartz配置说明
1. Quartz介绍
Quartz是一个开源的任务调度库,它能和任何java应用集成,quartz能创建一个简单或者复杂的调度,可以执行数十上百甚至成千上万的的任务,所有的任务都被定义为标准的java组件执行,因此可以执行任何你想要的业务。Quartz有很多企业级的特性,比如JTA事务和分布式。
2. 配置
配置quartz通常使用properties文件,默认quartz是从classes目录下读取“quartz.properties”文件的,如果该文件不存在,quartz会读取quartz包下的org/quartz目录下的”quartz.properties”文件。如果想自定义配置文件位置,需要设置应用的系统变量”org.quartz.properties”。
quartz.properties的配置样例如下:
org.quartz.scheduler.instanceName=quartz_name org.quartz.scheduler.instanceId=AUTO 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=60000 org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.tablePrefix=QRTZ_ org.quartz.jobStore.dataSource=ds org.quartz.jobStore.isClustered=true org.quartz.jobStore.clusterCheckinInterval=20000 org.quartz.dataSource.ds.driver=com.mysql.cj.jdbc.Driver org.quartz.dataSource.ds.URL=jdbc:mysql://localhost:3306/scheduler?useSSL=false org.quartz.dataSource.ds.user=root org.quartz.dataSource.ds.password=admin123 org.quartz.dataSource.ds.maxConnections=10
配置项说明:
org.quartz.scheduler.instanceName:
org.quartz.scheduler.instanceId:
org.quartz.threadPool.class:
线程池类的名称,必填项。可使用quartz提供的“org.quartz.simpl.SimpleThreadPool”类。
org.quartz.threadPool.threadCount:
org.quartz.threadPool.threadPriority:
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread:
org.quartz.jobStore.misfireThreshold:
org.quartz.jobStore.class:
任务存储类名,支持内存存储和物理存储,内存存储可配置为“org.quartz.simpl.RAMJobStore”,物理内存为数据库存储,可配置为“org.quartz.impl.jdbcjobstore.JobStoreTX”
org.quartz.jobStore.driverDelegateClass:
任务存储驱动委托类名,可根据不同的数据源类型填写不同的类。常见的有
“org.quartz.impl.jdbcjobstore.StdJDBCDelegate”,它适用于完全支持jdbc操作的库。 其它的委托类有:
“org.quartz.impl.jdbcjobstore.oracle.OracleDelegate”-oracle数据库, “org.quartz.impl.jdbcjobstore.PostgreSQLDelegate”-postgre数据库。
org.quartz.jobStore.tablePrefix:
org.quartz.jobStore.dataSource:
org.quartz.jobStore.isClustered:
数据源名称,可根据以下数据源配置填写。 数据表名前缀,默认为 QRTZ_
调度能容忍触发器忽略下一次触发的时间。单位为毫秒数。默认为6000(60秒) 加载任务代码的ClassLoader是否从外部继承,默认为false 线程优先级,必须为正整数。默认为5,最小为1,最大为10 线程数量。
在分布式调度环境下配置,可以为任意字符串,每个实例配置必须是不同的字符串。可以配置“AUTO”,那样id将由quartz自动生成。
可以为任意字符串,这对于调度器没有任何意义。如果在分布式环境下,每个实例必须设置成一样的字符串,这在逻辑上表示是同一个调度器。
是否使用分布式调度
org.quartz.jobStore.clusterCheckinInterval:
org.quartz.dataSource.ds.driver:
org.quartz.dataSource.ds.URL:
org.quartz.dataSource.ds.user:
org.quartz.dataSource.ds.password:
org.quartz.dataSource.ds.maxConnections:
正常配置名为org.quartz.dataSource.NAME. maxConnections, 其中NAME是数据源的名称,该配置是配置连接数据源最大连接数。
正常配置名为org.quartz.dataSource.NAME.password, 其中NAME是数据源的名称,该配置是配置连接数据源的密码。
正常配置名为org.quartz.dataSource.NAME.user, 其中NAME是数据源的名称,该配置是配置连接数据源的用户名。
正常配置名为org.quartz.dataSource.NAME.URL, 其中NAME是数据源的名称,该配置是配置连接数据源的url地址。
正常配置名为org.quartz.dataSource.NAME.driver, 其中NAME是数据源的名称,该配置是配置数据库驱动类名。
检测失败集群实例的时间,单位毫秒数,默认为15000(15秒)
3. 注意
使用分布式调度需要保证各个节点的时间要一致