×
Quartz快速入门指南

Quartz教程

使用QuartzQuartz API,Jobs和TriggersJob与JobDetail介绍TriggersSimple TriggerCronTriggerTrigger和JobListenersSchedulerListenersJob Stores配置和SchedulerFactoryQuartz高级(企业)功能Quartz其他功能Quartz配置参考Quartz主配置Quartz配置ThreadPool设置Quartz配置Global ListenersQuartz插件配置Quartz配置RMI设置Quartz配置RAMJobStoreQuartz配置JDBC-JobStoreTXQuartz配置JDBC-JobStoreCMTQuartz配置DataSources使用JDBC-JobStore配置群集Quartz配置TerracottaJobStore

Quartz配置DataSources


配置DataSources

如果您使用JDBC-Jobstore,则需要使用DataSource(或使用两个DataSource,如果您使用JobStoreCMT)。

DataSources可以通过三种方式进行配置:

  1. 在quartz.properties文件中指定的所有池属性,以便Quartz可以自己创建DataSource。
  2. 可以指定应用程序服务器管理的Datasource的JNDI位置,以便Quartz可以使用它。
  3. 自定义的org.quartz.utils.ConnectionProvider实现。

建议您将Datasource max连接大小配置为至少线程池中的工作线程数量加上三个。如果您的应用程序也频繁调用调度程序API,则可能需要其他连接。如果您使用JobStoreCMT,则“非受管理”数据源的最大连接大小应至少为4。

您定义的每个DataSource(通常为一个或两个)必须为一个名称,并且您为每个定义的属性必须包含该名称,如下所示。DataSource的“NAME”可以是任何您想要的,除了能够在分配给JDBCJobStore之后能够识别它之外,没有什么意义。

Property Name Required Type Default Value
org.quartz.dataSource.NAME.driver yes String null
org.quartz.dataSource.NAME.URL yes String null
org.quartz.dataSource.NAME.user no String ""
org.quartz.dataSource.NAME.password no String ""
org.quartz.dataSource.NAME.maxConnections no int 10
org.quartz.dataSource.NAME.validationQuery no String null
org.quartz.dataSource.NAME.idleConnectionValidationSeconds no int 50
org.quartz.dataSource.NAME.validateOnCheckout no boolean false
org.quartz.dataSource.NAME.discardIdleConnectionsSeconds no int 0 (disabled)

org.quartz.dataSource.NAME.driver

必须是数据库的JDBC驱动程序的java类名称。

org.quartz.dataSource.NAME.URL

连接到数据库的连接URL(主机,端口等)。

org.quartz.dataSource.NAME.user

连接到数据库时要使用的用户名。

org.quartz.dataSource.NAME.password

连接到数据库时使用的密码。

org.quartz.dataSource.NAME.maxConnections

DataSource可以在其连接池中创建的最大连接数。

org.quartz.dataSource.NAME.validationQuery

是可选的SQL查询字符串,DataSource可用于检测和替换失败/损坏的连接。例如,oracle用户可能会选择“从user_tables中选择table_name” - 这是一个不应该失败的查询 - 除非连接实际上是坏的。

org.quartz.dataSource.NAME.idleConnectionValidationSeconds

空闲连接测试之间的秒数 - 仅在设置验证查询属性时启用。默认值为50秒。

org.quartz.dataSource.NAME.validateOnCheckout

每次从池中检索连接时,是否应该执行数据库sql查询来验证连接,以确保它仍然有效。如果为假,则在办理登机手续时将进行验证。默认值为false。

org.quartz.dataSource.NAME.discardIdleConnectionsSeconds

它们在空闲之后放弃连接几秒钟。0禁用该功能。默认值为0。

Quartz定义的DataSource示例

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

对Application Server DataSources的引用使用以下属性定义:

Property Name Required Type Default Value
org.quartz.dataSource.NAME.jndiURL yes String null
org.quartz.dataSource.NAME.java.naming.factory.initial no String null
org.quartz.dataSource.NAME.java.naming.provider.url no String null
org.quartz.dataSource.NAME.java.naming.security.principal no String null
org.quartz.dataSource.NAME.java.naming.security.credentials no String null

org.quartz.dataSource.NAME.jndiURL

由应用程序服务器管理的DataSource的JNDI URL。

org.quartz.dataSource.NAME.java.naming.factory.initial

要使用的JNDI InitialContextFactory的(可选)类名。

org.quartz.dataSource.NAME.java.naming.provider.url

用于连接到JNDI上下文的(可选)URL。

org.quartz.dataSource.NAME.java.naming.security.principal

用于连接到JNDI上下文的(可选)用户主体。

org.quartz.dataSource.NAME.java.naming.security.credentials

用于连接到JNDI上下文的(可选)用户凭据。

从应用程序服务器引用的数据源示例

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

自定义ConnectionProvider实现

Property Name Required Type Default Value
org.quartz.dataSource.NAME.connectionProvider.class yes String (class name) null

org.quartz.dataSource.NAME.connectionProvider.class

要使用的ConnectionProvider的类名。实例化之后,Quartz可以自动设置实例上的配置属性,bean样式。

使用自定义ConnectionProvider实现的示例

org.quartz.dataSource.myCustomDS.connectionProvider.class = com.foo.FooConnectionProvider
org.quartz.dataSource.myCustomDS.someStringProperty = someValue
org.quartz.dataSource.myCustomDS.someIntProperty = 5

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)