Quartz框架中的JobStore
問題:最多可以運行多少個任務(磁盤、內(nèi)存、線程數(shù))
Jobstore用來存儲任務和觸發(fā)器相關的信息,例如所有任務的名稱、數(shù)量、狀態(tài)等等。Quartz中有兩種存儲任務的方式,一種在在內(nèi)存,一種是在數(shù)據(jù)庫。?
RAMJobStore?
Quartz默認的 JobStore是 RAMJobstore,也就是把任務和觸發(fā)器信息運行的信息存儲在內(nèi)存中,用到了 HashMap、TreeSet、HashSet等等數(shù)據(jù)結(jié)構(gòu)。
如果程序崩潰或重啟,所有存儲在內(nèi)存中的數(shù)據(jù)都會丟失。所以我們需要把這些數(shù)據(jù)持久化到磁盤。?
JDBCJobStore
JDBCJobStore可以通過 JDBC接口,將任務運行數(shù)據(jù)保存在數(shù)據(jù)庫中。
JDBC的實現(xiàn)方式有兩種,JobStoreSupport類的兩個子類:
JobStoreTX:在獨立的程序中使用,自己管理事務,不參與外部事務。
JobStoreCMT:(Container Managed Transactions (CMT),如果需要容器管理事務時,使用它。使用 JDBCJobSotre時,需要配置數(shù)據(jù)庫信息:?
org.quartz.jobStore.class:org.quartz.impl.jdbcjobstore.JobStoreTX? org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate? #使用 quartz.properties,不使用默認配置? org.quartz.jobStore.useProperties:true? #數(shù)據(jù)庫中 quartz表的表名前綴? org.quartz.jobStore.tablePrefix:QRTZ_? org.quartz.jobStore.dataSource:myDS? #配置數(shù)據(jù)源? org.quartz.dataSource.myDS.driver:com.mysql.jdbc.Driver? org.quartz.dataSource.myDS.URL:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8? org.quartz.dataSource.myDS.user:root? org.quartz.dataSource.myDS.password:123456? org.quartz.dataSource.myDS.validationQuery=select 0 from dual問題來了?需要建什么表?表里面有什么字段?字段類型和長度是什么?在官網(wǎng)的 Downloads鏈接中,提供了 11張表的建表語句:?quartz-2.2.3-distribution\quartz-2.2.3\docs\dbTables
2.3的版本在這個路徑下:src\org\quartz\impl\jdbcjobstore
表名與作用:
| QRTZ_BLOB_TRIGGERS | Trigger 作為Blob 類型存儲 |
| QRTZ_CALENDARS | 存儲Quartz 的Calendar 信息 |
| QRTZ_CRON_TRIGGERS | 存儲CronTrigger,包括Cron 表達式和時區(qū)信息 |
| QRTZ_FIRED_TRIGGERS | 存儲與已觸發(fā)的Trigger 相關的狀態(tài)信息,以及相關Job 的執(zhí)行信息 |
| QRTZ_JOB_DETAILS | 存儲每一個已配置的Job 的詳細信息 |
| QRTZ_LOCKS | 存儲程序的悲觀鎖的信息 |
| QRTZ_PAUSED_TRIGGER_GRPS | 存儲已暫停的Trigger 組的信息 |
| QRTZ_SCHEDULER_STATE | 存儲少量的有關Scheduler 的狀態(tài)信息,和別的Scheduler 實例 |
| QRTZ_SIMPROP_TRIGGERS | 存儲CalendarIntervalTrigger 和DailyTimeIntervalTrigger 兩種類型的觸發(fā)器 |
| QRTZ_TRIGGERS | 存儲已配置的Trigger 的信息 |
| QRTZ_SIMPLE_TRIGGERS | 存儲SimpleTrigger 的信息,包括重復次數(shù)、間隔、以及已觸的次數(shù) |
?
總結(jié)
以上是生活随笔為你收集整理的Quartz框架中的JobStore的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartz框架中的Listener
- 下一篇: springboot-quartz工程动