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_
相關文章
相關標籤/搜索