quartz

xiaoxiao2021-02-28  155

本文翻译原文来自quartz官网:

http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering.html

主要配置

 

Property Name

Req'd

Type

Default Value

org.quartz.scheduler.instanceName

no

string

'QuartzScheduler'

org.quartz.scheduler.instanceId

no

string

'NON_CLUSTERED'

org.quartz.scheduler.instanceIdGenerator.class

no

string (class name)

org.quartz.simpl .SimpleInstanceIdGenerator

org.quartz.scheduler.threadName

no

string

instanceName + '_QuartzSchedulerThread'

org.quartz.scheduler .makeSchedulerThreadDaemon

no

boolean

false

org.quartz.scheduler .threadsInheritContextClassLoaderOfInitializer

no

boolean

false

org.quartz.scheduler.idleWaitTime

no

long

30000

org.quartz.scheduler.dbFailureRetryInterval

no

long

15000

org.quartz.scheduler.classLoadHelper.class

no

string (class name)

org.quartz.simpl .CascadingClassLoadHelper

org.quartz.scheduler.jobFactory.class

no

string (class name)

org.quartz.simpl.SimpleJobFactory

org.quartz.context.key.SOME_KEY

no

string

none

org.quartz.scheduler.userTransactionURL

no

string (url)

'java:comp/UserTransaction'

org.quartz.scheduler .wrapJobExecutionInUserTransaction

no

boolean

false

org.quartz.scheduler.skipUpdateCheck

no

boolean

false

org.quartz.scheduler .batchTriggerAcquisitionMaxCount

no

int

1

org.quartz.scheduler .batchTriggerAcquisitionFireAheadTimeWindow

no

long

0

 

org.quartz.scheduler.instanceName

可以为任意字符串,对于scheduler来说此值没有意义,但可以用来区分同一系统中多个不同的实例。如果你使用了集群的功能,就必须对每个实例使用相同的名称,这样使这些实例“逻辑上”是同一个scheduler。

org.quartz.scheduler.instanceId

可以为任意字符串,但如果是集群的,就必须使所有scheduler实例此值唯一。如果你希望instanceId自动生成,可以使用“AUTO”,如果你希望此值来源于系统属性“org.quartz.scheduler.instanceId”,你可以使用“SYS_PROP”;

org.quartz.scheduler.instanceIdGenerator.class

只有当org.quartz.scheduler.instanceId =AUTO时才会生效。默认是org.quartz.simpl.SimpleInstanceIdGenerator,该生成器根据主机名和时间戳生成instanceid。其他生成器包括了:SystemPropertyInstanceIdGenerator (从系统属性org.quartz.scheduler.instanceId获取instance id),HostnameInstanceIdGenerator (根据当前主机名生成(InetAddress.getLocalHost().getHostName())),你也可以实现InstanceIdGenerator 接口实现自己的生成类。

org.quartz.scheduler.threadName

可以为是任何有效的java线程名称。如果此值没有配置,默认是“org.quartz.scheduler.instanceName”的值+固定字符串“_QuartzSchedulerThread”

org.quartz.scheduler.makeSchedulerThreadDaemon

true或者false,标识scheduler主线程是否为守护线程。

org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer

true或者false,标识Quartz产生的线程是否需要继承初始化线程(初始化Quartz实例的线程)。这会影响到Quartz的许多主任务线程,JDBCJobStore’s misfire handlingthread (if JDBCJobStore is used), cluster recovery thread (if clustering isused), and threads in SimpleThreadPool (if SimpleThreadPool is used)。将此值设置为true,可以帮助加载类,查找JNDI等等。

org.quartz.scheduler.idleWaitTime

这个属性设置了scheduler从空闲状态转为重新查询可用triggers的毫秒数。通常不建议修改它,除非你用到了XA transactions或者遇到了triggers本该出发但发生延迟的情况。5000ms以下通常不建议使用,这将产生大量的数据库查询操作。小于1000ms是不支持的。

org.quartz.scheduler.dbFailureRetryInterval

当JobStore中有大量链接的时候,需要等待的毫秒数。这个属性对使用RamJobStore没有什么意义。

org.quartz.scheduler.classLoadHelper.class

大多数稳健的应用,都使用默认值“org.quartz.simpl.CascadingClassLoadHelper”,它会依次使用其他ClassLoadHelper类,直到有一个生效为止。

org.quartz.scheduler.jobFactory.class

JobFactory的类名。默认“org.quartz.simpl.SimpleJobFactory”,你也可以用“org.quartz.simpl.PropertySettingJobFactory”。SimpleJobFactory调用newInstance()方法,PropertySettingJobFactory也是,但它可以将SchedulerContext和Job的内容或者trigger的JobDataMaps利用反射设置job的属性。

 

org.quartz.context.key.SOME_KEY

在scheduler context中的新建的键值对,例如:org.quartz.context.key.MyKey= MyValue,等价于scheduler.getContext().put(“MyKey”, “MyValue”).

 

org.quartz.scheduler.userTransactionURL

应该设置成JNDI URL,通过它Quartz可以找到应用服务的UserTransaction manger。默认值是“java:comp/UserTransaction”-大部分应用服务都是用这个配置。Websphere用户需要设置成“jta/usertransaction”。这个属性仅用于Quartz配置使用JobStoreCMT,并且org.quartz.scheduler.wrapJobExecutionInUserTransaction设置为true。

 

org.quartz.scheduler.wrapJobExecutionInUserTransaction

如果你想在执行job之前Quartz开启UserTransaction ,此属性应该设置为true。Job执行完,JobDataMap更新完(如果是StatefulJob)事务会提交。默认值是false,你也可以在你的job类上使用@ExecuteInJTATransaction 注解,以便在各自的job上决定是否开启JTA事务。

 

org.quartz.scheduler.skipUpdateCheck

此属性设置了是否需要检查更新。在生产环境,最好关闭检查更新。

 

org.quartz.scheduler.batchTriggerAcquisitionMaxCount

一个scheduler节点允许接收的trigger的最大数,默认值为1,这个值越大,定时任务执行的越多,但代价是集群节点之间的不均衡。

 

org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow

trigger被接受和提前执行的毫秒数。默认值为0。这个值约大,trigger接受和执行的数量越大,但其代价不能精确的估计。这对那些scheduler有大量的需要相近的时间执行的triggers有用。

转载请注明原文地址: https://www.6miu.com/read-850050.html

最新回复(0)