1. Quartz主要配置

属性名称 是否必选 类型 默认值 说明
org.quartz.scheduler.instanceName String QuartzScheduler Schedule调度器的实体名字
org.quartz.scheduler.instanceId String NON_CLUSTERED Schedule调度器的实体的Id,必须唯一。
1. 当你想生成intanceId的时候可以设置为AUTO
2. 当你想从系统属性org.quartz.scheduler.instanceId取值时可以设置为SYS_PROP
org.quartz.scheduler.instanceIdGenerator.class String(类名) org.quartz.simpl.SimpleInstanceIdGenerator 生成Schudule实体Id的类,只有在属性org.quartz.scheduler.instanceId设置为AUTO时使用,默认的实现org.quartz.scheduler.SimpleInstanceGenerator是基于主机名称和时间戳生成。其他的实现查看具体的文档
org.quartz.scheduler.threadName String instanceName + ‘_QuartzSchedulerThread’ Scheduler线程的名称
org.quartz.scheduler.makeSchedulerThreadDaemon boolean false 指定Scheduler是否以守护线程(服务)运行
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer boolean false 目前不太理解
org.quartz.scheduler.idleWaitTime long 30000 当调度程序空闲时,在重新查询可用触发器之前,调度程序将等待毫秒的时间数。不建议少于5000ms,而少于1000是不合法的参数
org.quartz.scheduler.doFailureRetryInterval long 15000 使用JobStore(比如连接数据库)时Schueduler检测到失去数据库连接后重新尝试连接的毫秒数
org.quartz.scheduler.classLoadHelper.class String(类名) org.quartz.simpl.CascadingClassLoaderHelper 目前不太了解
org.quartz.scheduler.jobFactory.class String(类名) org.quartz.simpl.PropertySettingJobFctory 给Scheduler Context、Job、Trigger的JobDataMaps设置属性值的方式
org.quartz.contenxt.key.SOME_KEY String None 键值对,保存在Scheduler Context中,比如有这样的配置org.quartz.shceduler.key.MyKey=MyValue,则在Scheduler Context中赋值方式为scheduler.getContext().put(“MyKey”, “MyValue”
org.quartz.scheduler.userTransactionURL String(url) java:comp/UserTransaction 事务管理JNDI URL地址。只有当Quartz使用JobStoreCMT和org.quartz.scheduler.wrapJobExecutionInUserTransaction 设置为true时使用
org.quartz.scheduler.wrapJobExecutionInUserTransaction boolean false 只有当你在执行一个Job时想使用UserTransaction时设置为true,参考@ExecuteInJTATransaction 注解
org.quartz.scheduler.skipUpdateCheck boolean false 是否跳过版本检测。可以设置系统参数org.terracotta.quartz.skipUpdateCheck=true或者在JAVA命令行使用-D选项。在正式库运行时应设置为true。
org.quartz.scheduler.batchTriggerAcquisitionMaxCount int 1 在同一时间运行Scheduler获取trigger的数量。如果设置的数量>1,并且使用JDBC JobStore,则属性org.quartz.jobStore.acquireTriggersWithinLock应设置为true,可以避破坏数据。
org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow long 0 运行Scheduler在获取和触发tigger的提前的时间。

2. 线程池配置

2.1 主要配置

属性名称 是否必选 类型 默认值 说明
org.quartz.threadPool.class String(类名) null Scheduler使用的线程池名称,实现了ThreadPool接口,参考org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount int -1 线程池里面的线程的数据,取值在1-100
org.quartz.threadPool.threadPriority int Thread.NORM_PRIORITY (5) 线程的优先级,取值在Thread.MIN_PRIORITY(1)到Threa.MAX_PRIORITY(10)

2.2 线程池的简单配置

属性名称 是否必选 类型 默认值 说明
org.quartz.threadPool.makeThreadsDaemons boolean fale 指定在线程池里面创建的线程是否是守护线程
org.quartz.threadPool.threadsInheritGroupOfInitializingThread boolean true  
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread boolean false  
org.quartz.threadPool.threadNamePrefix String [Scheduler Name]_Workder 指定线程池里面线程的名字的前缀

3. Listener配置

在实例化StdSchedulerFactory的时候可以注册一个全局的监听器到Scheduler中,全局监听器会监听每一个Job和Trigger的触发事件。 
全局监听器必选有一个无参的构造函数,并且属性值只能是基本类型(包括String)。

配置例子:

//trigger listener配置
org.quartz.triggerListener.NAME = package.className
org.quartz.triggerListener.NAME.propName = propValue
//job listener配置
org.quartz.jobListener.NAME = package.className
org.quartz.jobListener.NAME.propName = propValue

  

4. JobStore配置

JobStore是Scheduler在运行时用来存储相关的信息的,比如Job, Trigger。

4.1 RAMJobStore

RAMJobStore实现类是在内存中存储信息的,程序一旦结束便丢失了相关的信息。

属性名称 是否必选 类型 默认值 说明
org.quartz.jobStore.class String(类名) org.quartz.simpl.RAMJobStore 指定使用的JobStore
org.quartz.jobStore.misfireThreshold int 60000 触发器失败后下次触发的时间间隔

4.2 JDBCJobStore和JobStoreTX

JDBCJobStore和JobStoreTX都使用关系数据库来存储Schedule相关的信息。

JobStoreTX在每次执行任务后都使用commint或者rollback来提交更改。

如果在一个标准的独立应用或者在一个没有使用JTA事务管理的应用中使用Quartz,JDBCJobStore是一个不错的选择。

JobStoreTX的配置如下:

属性名称 是否必选 类型 默认值 说明
org.quartz.jobStore.class String(类名) org.quartz.simpl.jdbcjobstore.JobStoreTX 使用JobStoreTX
org.quartz.jobStore.driverDelegateClass String(类名) null 使用的数据库驱动,具体的驱动列表详情如下
org.quartz.jobStore.dataSource String null 使用的数据源名称,具体参照数据源配置
org.quartz.jobStore.tablePrefix String QRTZ_ 表的前缀
org.quartz.jobStore.userProperties boolean false 标示在JobDataMaps的数据全部是String
org.quartz.jobStore.misfireThreshold int 60000 触发器触发失败后再次触犯的时间间隔
org.quartz.jobStore.isClustered boolean false 如果有多个调度器实体的话则必须设置为true
org.quartz.jobStore.clusterCheckinInterval long 15000 检查集群下的其他调度器实体的事件间隔
org.quartz.jobStore.maxMisfiresToHandleAtATime int 20  
org.quartz.jobStore.dontSetAutoCommintFalse boolean false  
org.quartz.jobStore.selectWithLockSQL String select * from {0}locks where sched_name = {1} and lock_name = ? for update  
org.quartz.jobStore.txlsolationLevelSerializable boolean false  
org.quartz.jobStore.acquireTriggersWithinLocal boolean false  
org.quartz.jobStore.lockHandler.class String null  
org.quartz.jobStore.driverDelegateInitString String null  

4.2.1 org.quartz.jobStore.driverDelegateClass数据库驱动列表

  • org.quartz.impl.jdbcstore.StdJDBCDelegate 适用于完全兼容JDBC的驱动
  • org.quartz.impl.jdbcstore.MSSQLDelegate 适用于Miscrosoft SQL Server和Sybase数据库
  • org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
  • org.quartz.impl.jdbcjobstore.WebLogicDelegate
  • org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
  • org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDelegate
  • org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate
  • org.quartz.impl.jdbcjobstore.CloudscapeDelegate
  • org.quartz.impl.jdbcjobstore.DB2v6Delegate
  • org.quartz.impl.jdbcjobstore.DB2v7Delegate
  • org.quartz.impl.jdbcjobstore.DB2v8Delegate
  • org.quartz.impl.jdbcjobstore.HSQLDBDelegate
  • org.quartz.impl.jdbcjobstore.PointbaseDelegate
  • org.quartz.impl.jdbcjobstore.SybaseDelegate

5. 集群,使用JDBCJobStore和JobStoreTX

在JobStore使用JDBCJobStore、JobStoreTX、JobStoreCMT的情况下可以使用Quartz的集群特性,示意图如下:

简单的配置如下:

//主要配置
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO //配置数据池连接
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.treadPriority = 5 //JobStore配置
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcstore.oracle.OracleDelegate
org.quartz.jobStore.userProperties = true
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000 //DataSource数据源配置
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@localhost:1521:dev
org.quartz.dataSource.myDS.user = quartz
org.quartz.dataSource.myDS.password = quartz
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=select 0 from dual

  

Quartz配置的更多相关文章

  1. 浅谈Spring中的Quartz配置

    浅谈Spring中的Quartz配置 2009-06-26 14:04 樊凯 博客园 字号:T | T Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在 ...

  2. spring多个定时任务quartz配置

    spring多个定时任务quartz配置 <?xml version=”1.0″ encoding=”UTF-8″?> <beans xmlns=”http://www.spring ...

  3. 使用spring+quartz配置多个定时任务

    Spring被用在了越来越多的项目中, quartz也被公认为是比较好用的定时器设置工具, 在这里通过一个demo说明如何使用spring和quartz配置多个定时任务. 环境: eclipse + ...

  4. Quartz 配置文件属性

    主要配置 Property Name Req'd Type Default Value org.quartz.scheduler.instanceName no string 'QuartzSched ...

  5. HangFire的定时任务和Quartz.NET总结(三)Quartz 配置

    在一个Net Core需求中,需要在每天的凌晨三点去抓取两个电商仓库的剩余的每个料号的数量来写会自己的表中, 用到了HangFire的定时任务 这篇文章讲的很详细记录下   文章2  这篇更简单 Qu ...

  6. Spring-----定时任务Quartz配置之手动设置

    一 配置xml如下: <!-- 定时任务配置 --> <bean id="scheduler" class="org.springframework.s ...

  7. spring quartz 配置实现定时任务 详解

    一. 编写定时任务JAVA类 比如: public class QuartzJob {     public QuartzJob(){         System.out.println(" ...

  8. Spring-----定时任务Quartz配置

    第一种,作业类继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean. 第一步:定义作业类 import org.quartz.Job ...

  9. Quartz.NET总结(三)Quartz 配置

    前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,Quartz相关的配置有三个quartz.config.quartz_jobs.xml.lo ...

  10. [代码]JAVA触发器,Spring的quartz配置

    Spring的quartz中的配置代码,spring-quartz.xml: <?xml version="1.0" encoding="UTF-8"?& ...

随机推荐

  1. Docker安装Zookeeper

    ⒈下载 docker pull zookeeper ⒉运行 docker run --name zk -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart ...

  2. C++ Boost库简介(转载)

    boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化.不过对比STL,boost更加实用.STL集中在算法部分,而boost包含了不少工具类, ...

  3. ftpdata目录下日期目录权限问题

    由于APP Server由root用户启动,创建目录默认为root:root用户:用户组权限 需chown -R wingupload ftpdata执行后,WING才能上传成功 或者写成脚本,每天凌 ...

  4. 腾讯云YUM安装失效

    修改路由后,YUM安装失效,提示不能解析YUM源 yum clear chche yum makecache

  5. Caching漫谈--关于Cache的几个理论

    如今缓存是随处可见了,如果你的程序还没有使用到缓存,那可能是你的程序并发量很低,或对实时性要求很低.我们公司的ERP在显示某些报表时,每次打开都需要花上几分钟的时间,假如搜索引擎也是这么慢,我想这家搜 ...

  6. jdk8系列二、jdk8方法引用、重复注解、更好的类型推断、新增注解

    一.方法引用 方法引用使得开发者可以直接引用现存的方法.Java类的构造方法或者实例对象.方法引用和Lambda表达式配合使用,使得java类的构造方法看起来紧凑而简洁,没有很多复杂的模板代码. 方法 ...

  7. C++:explicit关键字

    在C++中,如果一个类的构造函数只有一个形参,在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象, ...

  8. mysql字符串 转 int-double CAST与CONVERT 函数的用法

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值.两者具体的语法如下: CAST(value as type); CONVERT(value, type) ...

  9. PYTHON-字符编码&文件处理-练习

    # 把多个账号密码写入文件中# 编写登录功能,登录失败三次 程序退出. # 登录账号密码定义,用列表分割,for循环取值=====判断对错=====循环条件3次退出# with open(r'db.t ...

  10. 搭建ssh框架项目(二)

    一.创建dao层 (1)创建接口ICommonDao.java package com.cppdy.ssh.dao; public interface ICommonDao<T> { pu ...