quartz-----Job Stores

JobStore负责跟踪您提供给调度程序的全部“工做数据”:jobs,triggers,日历等。数据库

RAMJobStore

RAMJobStore是使用最简单的JobStore,它也是性能最高的(在CPU时间方面)。RAMJobStore以其明显的方式获取其名称:它将其全部数据保存在RAM中。这就是为何它是闪电般快的,也是为何这么简单的配置。缺点是当您的应用程序结束(或崩溃)时,全部调度信息都将丢失 - 这意味着RAMJobStore没法履行做业和triggers上的“非易失性”设置。对于某些应用程序,这是能够接受的 - 甚至是所需的行为,但对于其余应用程序,这多是灾难性的。性能

要使用RAMJobStore(并假设您使用的是StdSchedulerFactory),只需将类名称org.quartz.simpl.RAMJobStore指定为用于配置石英的JobStore类属性:code

配置Quartz以使用RAMJobStore索引

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

JDBC JobStore

JDBCJobStore也被恰当地命名 - 它经过JDBC将其全部数据保存在数据库中。所以,配置比RAMJobStore要复杂一点,并且也不是那么快。可是,性能降低并非很糟糕,特别是若是您在主键上构建具备索引的数据库表。事务

JDBCJobStore几乎与任何数据库一块儿使用,已被普遍应用于Oracle,PostgreSQL,MySQL,MS SQLServer,HSQLDB和DB2。要使用JDBCJobStore,必须首先建立一组数据库表以供Quartz使用。table

建立表后,在配置和启动JDBCJobStore以前,您还有一个重要的决定。您须要肯定应用程序须要哪一种类型的事务。若是您不须要将调度命令(例如添加和删除triggers)绑定到其余事务,那么能够经过使用JobStoreTX做为JobStore 来管理事务(这是最多见的选择)。class

配置Quartz以使用JobStoreTx配置

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

接下来,您须要为JobStore选择一个DriverDelegate才能使用。DriverDelegate负责执行特定数据库可能须要的任何JDBC工做。jdbc

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

使用表前缀配置JDBCJobStore程序

org.quartz.jobStore.tablePrefix = QRTZ_
相关文章
相关标签/搜索