配置详解Quartz配置文件详解

Posted sunny3096

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置详解Quartz配置文件详解相关的知识,希望对你有一定的参考价值。

#============================================================================
Configure Main Scheduler Properties 调度器属性
#============================================================================

# 在集群中每个实例都必须有一个唯一的instanceId,但是应该有一个相同的instanceName
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO


#org.quartz.scheduler.rmi.export = false
#org.quartz.scheduler.rmi.proxy = false
#org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
#org.quartz.scheduler.skipUpdateCheck = true

#============================================================================
# Configure ThreadPool 线程池属性
#============================================================================

# 线程池的实现类(定长线程池,几乎可满足所有用户的需求)
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

# 指定线程数,至少为1(无默认值)(一般设置为1-100直接的整数合适)
org.quartz.threadPool.threadCount = 25

# 设置线程的优先级(最大为java.lang.Thread.MAX_PRIORITY 10,最小为Thread.MIN_PRIORITY 1,默认为5)
org.quartz.threadPool.threadPriority = 5

 

# ------------------设置SimpleThreadPool的一些属性-------------------------------
# 设置是否为守护线程
#org.quartz.threadpool.makethreadsdaemons = false

#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true

#org.quartz.threadpool.threadsinheritgroupofinitializingthread=false

#线程前缀默认值是:[Scheduler Name]_Worker

#org.quartz.threadpool.threadnameprefix=swhJobThead;

 

# ------------------------配置全局监听(TriggerListener,JobListener) 则应用程序可以接收和执行 预定的事件通知

# Configuring a Global TriggerListener 配置全局的Trigger监听器。

# MyTriggerListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)
#org.quartz.triggerListener.NAME.class = com.swh.MyTriggerListenerClass

#org.quartz.triggerListener.NAME.propName = propValue

#org.quartz.triggerListener.NAME.prop2Name = prop2Value


# Configuring a Global JobListener 配置全局的Job监听器

# MyJobListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)

#org.quartz.jobListener.NAME.class = com.swh.MyJobListenerClass

#org.quartz.jobListener.NAME.propName = propValue

#org.quartz.jobListener.NAME.prop2Name = prop2Value


#============================================================================

# Configure JobStore 配置数据存储的方式
#============================================================================
# 一个触发器被认定为“misfired”之前,调度器所能容忍的毫秒数(信息保存时间 默认值60秒
org.quartz.jobStore.misfireThreshold = 60000

# 所有的quartz数据例如job和Trigger的细节信息被保存在内存或数据库中(RAMJobStore、JDBCJobStore)
org.quartz.jobStore.class = org.quartz.simpl.JDBCJobStore

# 配置事务。JobStoreTX来让Quartz帮你管理事务(J2EE应用服务器事务JobStoreCMT)
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

# DriverDelegate负责做指定数据库的所有JDBC工作,如果数据库没有其他指定的代理,那么就试用代理StdJDBCDelegate
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

# 为了指示JDBCJobStore所有的JobDataMaps中的值都是字符串,并且能以“名字-值”对的方式存储而不是以复杂对象的序列化形式存储在BLOB字段中,应该设置为true(缺省方式)
org.quartz.jobStore.useProperties = false

# 配置数据源的名称,在后面配置数据源的时候要用到,例如org.quartz.dataSource.clusterDS.driver = com.mysql.jdbc.Driver
org.quartz.jobStore.dataSource = clusterDS

# 数据表前缀
org.quartz.jobStore.tablePrefix = QRTZ_

# 是否集群、负载均衡、容错
org.quartz.jobStore.isClustered = true

# 检入到数据库中的频率(毫秒)。检查是否其他的实例到了应当检入的时候未检入这能指出一个失败的实例,且当前Scheduler会以此来接管执行失败并可恢复的Job
# 通过检入操作,Scheduler也会更新自身的状态记录
org.quartz.jobStore.clusterCheckinInterval = 20000
org.quartz.jobStore.acquireTriggersWithinLock = true
#org.quartz.jobStore.maxMisfiresToHandleAtATime = 20

#============================================================================
# Configure Datasources 数据源
#============================================================================

# 数据库驱动
org.quartz.dataSource.clusterDS.driver = com.mysql.jdbc.Driver

# 数据库连接地址
org.quartz.dataSource.clusterDS.URL = jdbc:mysql://${mysql.address}/etc-quartz?useUnicode=true&characterEncoding=utf8

# 数据库用户名
org.quartz.dataSource.clusterDS.user = ${mysql.user}

# 数据库密码
org.quartz.dataSource.clusterDS.password = ${mysql.password}

# 数据库最大连接数(如果Scheduler很忙,比如执行的任务与线程池的数量差不多相同,那就需要配置DataSource的连接数量为线程池数量+1)
org.quartz.dataSource.clusterDS.maxConnections = 30


org.quartz.dataSource.clusterDS.validationQuery=select RAND()

#============================================================================
# Configure Plugins 插件配置
#============================================================================

# 配置trigger执行历史日志(可以看到类的文档和参数列表)
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin

 

org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}

org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}

 

 

# 加载 Job 和 Trigger 信息的类 (1.8之前用:org.quartz.plugins.xml.JobInitializationPlugin)
#org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin

# 指定存放调度器(Job 和 Trigger)信息的xml文件,默认是classpath下quartz_jobs.xml
#org.quartz.plugin.jobInitializer.fileNames = quartz_data.xml
#org.quartz.plugin.jobInitializer.failOnFileNotFound = true


#org.quartz.plugin.jobInitializer.overWriteExistingJobs = true



# 自动扫描任务单并发现改动的时间间隔,单位为秒
org.quartz.plugin.jobInitializer.scanInterval = 120

# 覆盖任务调度器中同名的jobDetail,避免只修改了CronExpression所造成的不能重新生效情况
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false


 

# ===========================================================================  

# Sample configuration of ShutdownHookPlugin  ShutdownHookPlugin插件的配置样例

# ===========================================================================

#org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin

#org.quartz.plugin.shutdownhook.cleanShutdown = true

# Configure RMI Settings 远程服务调用配置

# 如果你想quartz-scheduler出口本身通过RMI作为服务器,然后设置“出口”标志true(默认值为false)。

#org.quartz.scheduler.rmi.export = false

# 主机上rmi注册表(默认值localhost)

#org.quartz.scheduler.rmi.registryhost = localhost

# 注册监听端口号(默认值1099)

#org.quartz.scheduler.rmi.registryport = 1099

# 创建rmi注册,false/never:如果你已经有一个在运行或不想进行创建注册

# true/as_needed:第一次尝试使用现有的注册,然后再回来进行创建

# always:先进行创建一个注册,然后再使用回来使用注册

#org.quartz.scheduler.rmi.createregistry = never

#Quartz Scheduler服务端端口,默认是随机分配RMI注册表

#org.quartz.scheduler.rmi.serverport = 1098

# true:链接远程服务调度(客户端),这个也要指定registryhost和registryport,默认为false

# 如果export和proxy同时指定为true,则export的设置将被忽略

 

# ===========================================================================# Configuring a Global TriggerListener 配置全局的Trigger监听器# MyTriggerListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)# ===========================================================================#org.quartz.triggerListener.NAME.class = com.swh.MyTriggerListenerClass#org.quartz.triggerListener.NAME.propName = propValue#org.quartz.triggerListener.NAME.prop2Name = prop2Value# ===========================================================================# Configuring a Global JobListener 配置全局的Job监听器# MyJobListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)# ===========================================================================#org.quartz.jobListener.NAME.class = com.swh.MyJobListenerClass#org.quartz.jobListener.NAME.propName = propValue#org.quartz.jobListener.NAME.prop2Name = prop2Value--------------------- 作者:sanfye 来源:CSDN 原文:https://blog.csdn.net/sanfye/article/details/49204307?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于配置详解Quartz配置文件详解的主要内容,如果未能解决你的问题,请参考以下文章

Quartz.NET 配置文件详解

Quartz配置详解

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

Quartz job.xml配置的Cron表达式详解

Quartz表达式详解

SpringBoot 配置文件详解(告别XML)