quratz启动流程
SchedulerFactory在創建quartzScheduler的過程中,將會讀取配置參數,初始化各個組件。
1.啟動流程圖
?
2.ThreadPool
一般是使用SimpleThreadPool,SimpleThreadPool創建了一定數量的WorkerThread實例來使得Job能夠在線程中進行處理。
WorkerThread是定義在SimpleThreadPool類中的內部類,它實質上就是一個線程。
在SimpleThreadPool中有三個list:workers-存放池中所有的線程引用,availWorkers-存放所有空閑的線程,busyWorkers-存放所有工作中的線程;
線程池的配置參數如下所示:
org.quartz.threadPool.threadCount=3
org.quartz.threadPool.threadPriority=5
ThreadPool.java
代碼:
1 public SimpleThreadPool(int threadCount, int threadPriority) { 2 setThreadCount(threadCount); 3 setThreadPriority(threadPriority); 4 }?
3.JobStore
分為存儲在內存的RAMJobStore和存儲在數據庫的JobStoreSupport(包括JobStoreTX和JobStoreCMT兩種實現,JobStoreCMT是依賴于容器來進行事務的管理,而JobStoreTX是自己管理事務)。
若要使用集群要使用JobStoreSupport的方式。
?
4.QuratzSchedulerThread
用來進行任務調度的線程,在初始化的時候paused=true,halted=false,雖然線程開始運行了,但是paused=true,線程會一直等待,直到start方法將paused置為false;
?
轉載于:https://www.cnblogs.com/juncaoit/p/9406026.html
總結
以上是生活随笔為你收集整理的quratz启动流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: quratz数据存储
- 下一篇: BZOJ3998 TJOI2015弦论(