我们通常是通过quartz.properties属性配置文件(默认情况下均使用该文件)结合StdSchedulerFactory 来使用Quartz的。StdSchedulerFactory 会加载属性配置文件并实例化一个Scheduler。

默认情况下,Quartz会加载classpath下的”quartz.properties”文件作为配置属性,如果找不到则会使用quartz框架自己jar下org/quartz包底下的”quartz.properties”文件。当然你也可以指定”org.quartz.properties”属性指向你自定义的属性配置文件。或者,你也可以在调用StdSchedulerFactory的 getScheduler()方法之前调用 initialize(xx)初始化factory配置。

(本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217)

在配置文件中你可以使用”$@”引用其他属性配置。

主调度程序Scheduler的配置

参数名 是否必须 类型 默认值
org.quartz.scheduler.instanceName N string ‘QuartzScheduler’
org.quartz.scheduler.instanceId N string ‘NON_CLUSTERED’
org.quartz.scheduler.instanceIdGenerator.class N string (class name) org.quartz.simpl.SimpleInstanceIdGenerator
org.quartz.scheduler.threadName N string instanceName+’_QuartzSchedulerThread’
org.quartz.scheduler.makeSchedulerThreadDaemon N boolean false
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer N boolean false
org.quartz.scheduler.idleWaitTime N string 30000
org.quartz.scheduler.dbFailureRetryInterval N long 15000
org.quartz.scheduler.classLoadHelper.class N string (class name) org.quartz.simpl.CascadingClassLoadHelper
org.quartz.scheduler.jobFactory.class N string (class name) org.quartz.simpl.PropertySettingJobFactory
org.quartz.context.key.SOME_KEY N string none
org.quartz.scheduler.userTransactionURL N string (url) ‘java:comp/UserTransaction’
org.quartz.scheduler.wrapJobExecutionInUserTransaction N boolean false
org.quartz.scheduler.skipUpdateCheck N boolean false
org.quartz.scheduler.batchTriggerAcquisitionMaxCount N int 1
org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow N long 0

org.quartz.scheduler.instanceName

使用StdSchedulerFactory的 getScheduler()方法创建的scheduler实例名称,在同一个程序中可以根据该名称来区分scheduler。如果实在集群环境中使用,你必须使用同一个名称——集群环境下”逻辑”相同的scheduler。

org.quartz.scheduler.instanceId

scheduler实例的标志id,必须是全局唯一的,即使在集群环境中”逻辑”相同的scheduler。 或者可以使用“SYS_PROP”通过系统属性设置id。

org.quartz.scheduler.instanceIdGenerator.class

只有在”org.quartz.scheduler.instanceId”设置为”AUTO”的时候才使用该属性设置。默认情况下,“org.quartz.simpl.SimpleInstanceIdGenerator”是基于instanceId和时间戳来自动生成的。其他的id生成器的实现包括 SystemPropertyInstanceIdGenerator 从系统属性获取 “org.quartz.scheduler.instanceId”, 和 HostnameInstanceIdGenerator 使用主机名 (InetAddress.getLocalHost().getHostName())。你也可以自定义生成方式哦。

org.quartz.scheduler.threadName

指定线程名,如果不指定的话,会自动使用org.quartz.scheduler.instanceName属性值加上后缀字符串”_QuartzSchedulerThread”.

org.quartz.scheduler.makeSchedulerThreadDaemon

指定scheduler的主线程是否为后台线程。

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer

指定Quartz生成的线程是否继承初始化线程的上下文类加载器。这会影响Quartz的主调度线程、JDBCJobStore的”熄火”处理线程、集群回复线程和线程池里的线程。 将该值设置为“true”可以帮助类加载,JNDI查找,并在应用程序服务器上使用Quartz等相关问题。

org.quartz.scheduler.idleWaitTime

在调度程序空闲的时候,重复查询是否有可用触发器的等待时间。通常并不会设置为true,除非你是用XA事务,并且延迟触发会导致问题的场景。 5000ms以下是不推荐的,因为它会导致过的的数据库查询。1000ms以下是非法的。

org.quartz.scheduler.dbFailureRetryInterval

连接超时重试连接的间隔。使用 RamJobStore时,该参数并没什么用。

org.quartz.scheduler.classLoadHelper.class

默认最可靠的方式就是指定”org.quartz.simpl.CascadingClassLoadHelper”,没必要指定其他类。

org.quartz.scheduler.jobFactory.class

指定JobFactory的类(接口)名称。负责实例化jobClass。默认是”org.quartz.simpl.PropertySettingJobFactory”,只是在job被执行的时候简单调用newInstance()实例化一个job类。PropertySettingJobFactory 会使用反射机制通过SchedulerContext、 Job、Trigger和 JobDataMaps设置job bean的属性。

使用JTA事务时,可以设置事务相关的属性

org.quartz.scheduler.userTransactionURL

设置Quartz能够加载UserTransaction换利器的JNDI的 URL。默认值是”java:comp/UserTransaction”。Websphere 的用户可能会设置为“jta/usertransaction。只有在Quartz使用JobStoreCMT的时候,才会使用该属性,并且org.quartz.scheduler.wrapJobExecutionInUserTransaction也会设置为true。

org.quartz.scheduler.wrapJobExecutionInUserTransaction

如果想使用Quartz在执行一个job前使用UserTransaction,则应该设置该属性为true。job执行完、在JobDataMap改变之后事务会提交。默认值是false。 可以在你的job类中使用 @ExecuteInJTATransaction注解, 可以控制job是否使用事务。

org.quartz.scheduler.skipUpdateCheck

建议设置为“org.terracotta.quartz.skipUpdateCheck=true”不会在程序运行中还去检查quartz是否有版本更新。

org.quartz.scheduler.batchTriggerAcquisitionMaxCount

允许调度程序一次性触发的触发器数量。.默认值是1。值越大一次性触发的任务就可以越多,但是在集群环境下,不建议设置为很大值。如果值 > 1, 并且使用了 JDBC JobStore的话, org.quartz.jobStore.acquireTriggersWithinLock属性必须设置为true,以避免”弄脏”数据。

org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow

允许触发器被获取并在其预定的触发时间之前触发的数量。默认值0。

Quartz线程池的配置

参数名 是否必须 类型 默认值
org.quartz.threadPool.class Y string (class name) null
org.quartz.threadPool.threadCount Y string -1
org.quartz.threadPool.threadPriority N int Thread.NORM_PRIORITY (5)

org.quartz.threadPool.class

线程池的名字。可以使用后Quartz 的 “org.quartz.simpl.SimpleThreadPool”。

org.quartz.threadPool.threadCount

指定线程数量。一般1-100足以满足你的应用需求了。

org.quartz.threadPool.threadPriority

线程优先级,Thread.MIN_PRIORITY (1) and Thread.MAX_PRIORITY (10)之间,默认Thread.NORM_PRIORITY (5)。

监听器的配置

全局触发器的监听器配置:

org.quartz.triggerListener.NAME.class = com.foo.MyListenerClass
org.quartz.triggerListener.NAME.propName = propValue
org.quartz.triggerListener.NAME.prop2Name = prop2Value

全局job的监听器配置:

org.quartz.jobListener.NAME.class = com.foo.MyListenerClass
org.quartz.jobListener.NAME.propName = propValue
org.quartz.jobListener.NAME.prop2Name = prop2Value

jobStore的配置

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
或者
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
或者
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

数据源的配置

org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@10.0.1.23:1521:demodb
org.quartz.dataSource.myDS.user = myUser
org.quartz.dataSource.myDS.password = myPassword
org.quartz.dataSource.myDS.maxConnections = 30

从一个应用服务中获取数据源配置:

org.quartz.dataSource.myOtherDS.jndiURL=jdbc/myDataSource
org.quartz.dataSource.myOtherDS.java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory
org.quartz.dataSource.myOtherDS.java.naming.provider.url=ormi://localhost
org.quartz.dataSource.myOtherDS.java.naming.security.principal=admin
org.quartz.dataSource.myOtherDS.java.naming.security.credentials=123

集群配置

#============================================================================
# Configure Main Scheduler Properties
#============================================================================org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO#============================================================================
# Configure ThreadPool
#============================================================================org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5#============================================================================
# Configure JobStore
#============================================================================org.quartz.jobStore.misfireThreshold = 60000org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000#============================================================================
# Configure Datasources
#============================================================================org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@polarbear: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任务调度框架之最全Quartz系统参数配置详解相关推荐

  1. SpringMVC 框架系列之组件概述与配置详解

    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...

  2. Spring框架深入(四)--SpringMVC配置详解

    一.SpringMVC web模型 二.@RequestMapping参数说明 1.value:定义处理方法的请求的URL地址: 2.method:定义处理的方法的http method类型,如GET ...

  3. Quartz任务调度框架

    Quartz 基本概念及原理 作为一个优秀的开源调度框架,Quartz 具有以下特点: 1.强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求: 2. 灵活的应用方式,例如支持任务 ...

  4. FCN(全卷积神经网络)详解

    文章目录 1. 综述 简介 核心思想 2. FCN网络 2.1 网络结构 2.2 上采样 Upsampling 2.3 跳级结构 3 FCN训练 4. 其它 4.1 FCN与CNN 4.2 FCN的不 ...

  5. python 录制web视频_Python django框架 web端视频加密的实例详解

    视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...

  6. iptable 详解_最全的iptables防火墙详解.pdf

    最全的iptables防火墙详解 iptables / iptables / iippttaabblleess官方网站:hhttttpp::nneettffiilltteerr..oorrgg// • ...

  7. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  8. 使用Gin框架集成JWT,源码、详解、面试问题

    使用Gin框架集成JWT,源码.详解.面试问题 一.什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519). ...

  9. centos7中ps显示的内容_值得收藏,史上最全Linux ps命令详解

    原标题:值得收藏,史上最全Linux ps命令详解 一.程序员的疑惑 大概在十多年前,我当时还是一个产品经理.由于一些工作的原因,需要向运维工程师学习一些linux常用命令. 当使用linux ps这 ...

最新文章

  1. 我用Python爬取英雄联盟的皮肤,隔壁家的小弟弟都馋哭了
  2. 15.4 xshell使用xftp传输文件;15.5 使用pure-ftpd搭建ftp服务
  3. System.Linq捉虫记 | 论变量命名的重要性
  4. r软件 image画出来的图是颠倒的_如何用Python抠图?试试scikitimage
  5. Welcome-to-Swift-13继承(Inheritance)
  6. R-基础测试(2)——在线帮助(转)
  7. android仿winphone进度指示器的实现
  8. Java核心技术卷II:高级特性
  9. Android与51822蓝牙模块通信流程的实现与分析
  10. moviepy图片和文字合成视频
  11. 注册表知识和技巧大全
  12. Jmeter使用篇(二十三) : Jmeter中调用Python代码
  13. EasyExcel导出数据到Excel,浏览器提供下载
  14. 量子算法入门资料个人小结
  15. 刷了OpenWrt Attitude Adjustment 12.09,很满意
  16. 有利可图的NFT,NA公链(Nirvana Chain)NAC公链怎么面对高额Gas费的?
  17. Presto RBO之broadcast join与partitioned join类型的选择优化
  18. HTML5Canvas绘图(上)
  19. vTK颜色渲染-vtkLookupTable
  20. Python相关介绍(很好)

热门文章

  1. sourcetree安装中net Framework安装失败问题
  2. Xshel和Xftp免费版下载
  3. Java中JFrame窗口添加背景图片
  4. 仿最新BiliBili客户端开源带后台弹幕库版
  5. 中创专利|中国5G标准必要专利达1.8万项,尊重知识产权,共建知识产权强国
  6. http协议深入理解
  7. 主机与Dynamips相连的折中解决方法
  8. .Net 依赖Office将Word转Pdf的实现
  9. 用手机蓝牙锁定计算机,拿起手机就能自动锁定电脑 这个技巧能保护你的隐私...
  10. Python与Pycharm安装包