Quartz原理
一、核心概念
Quartz的原理不是很複雜,只要搞明白幾個概念,然後知道如何去啟動和關閉一個排程程式即可。
1、Job
表示一個工作,要執行的具體內容。此介面中只有一個方法execute。我們的任務類實現該介面,重寫execute方法即是要進行任務排程的方法。
void execute(JobExecutionContext context)
2、JobDetail
JobDetail表示一個具體的可執行的排程程式,Job是這個可執行程排程程式所要執行的內容,另外JobDetail還包含了這個任務排程的方案和策略。
3、Trigger代表一個排程引數的配置,什麼時候去調。
4、Scheduler代表一個排程容器,一個排程容器中可以註冊多個JobDetail和Trigger。當Trigger與JobDetail組合,就可以被Scheduler容器排程了。正常情況下一個應用只需要一個Scheduler物件。
二、結構
1、scheduler是一個計劃排程器容器,容器裡面可以盛放眾多的JobDetail和trigger,當容器啟動後,裡面的每個JobDetail都會根據trigger按部就班自動去執行。
2、scheduler是個容器,容器中有一個執行緒池,用來並行排程執行每個作業。
所有工作執行緒都會放線上程池中,即所有工作執行緒都放在SimpleThreadPool例項的一個LinkedList<WorkerThread>成員變數中。WorkerThread是SimpleThreadPool的內部類,這麼設計可能是因為不想繼承SimpleThreadPool但又想呼叫其protected方法,或者想隱藏WorkerThread。執行緒池還擁有兩個LinkedList<WorkerThread>:availWorkers和busyWorkers,分別存放空閒和正在執行job的工作執行緒。
排程器執行緒以{instanceName}_QuartzSchedulerThread命名。該執行緒將根據trigger找出要待執行job,然後從threadpool中拿出工作執行緒來執行。排程器執行緒主體是QuartzSchedulerThread物件。
具體呼叫鏈是從StdScheduler -> QuartzScheduler -> QuartzSchedulerResources -> SimpleThreadPool(配置檔案指定) -> WorkerThread
3、將上述的結構用一個圖來表示
相關文章
- Quartz原理解密quartz解密
- 深入解讀Quartz的原理quartz
- Quartz叢集原理及配置應用quartz
- quartz (從原理到應用)詳解篇quartz
- Quartz核心原理之架構及基本元素介紹quartz架構
- Quartz - Quartz簡單入門quartz
- Quartz - Spring和Quartz的整合quartzSpring
- Quartz初探quartz
- Quartz定時任務框架(二) Quartz詳解quartz框架
- Quartz 學習quartz
- Quartz 使用教程quartz
- Quartz 簡單使用quartz
- Quartz 2Dquartz
- iOS Quartz筆記iOSquartz筆記
- Quartz.NET 2.x 文件翻譯 - Lesson 1:使用Quartzquartz
- Quartz.NET 使用入門整理二(搭建quartz.net專案)quartz
- Quartz - Spring整合Quartz實現叢集的定時任務quartzSpring
- Quartz:基本用法總結quartz
- Quartz job scheduler 學習quartz
- spring-quartz整合Springquartz
- Quartz框架中的Schedulerquartz框架
- Quartz (2) - 動態操作quartz
- quartz的配置表示式quartz
- quartz學習-quartz編碼方式實現定時任務簡例quartz
- 架構 規則引擎 quartz架構quartz
- 【Springboot】快速整合QuartzSpring Bootquartz
- SpringBoot 整合 Quartz + MySQLSpring BootquartzMySql
- Quartz.NET整合UI版quartzUI
- 石英定時任務-quartzquartz
- iOS之Quartz2DiOSquartz
- quartz叢集增強版🎉quartz
- Quartz.NET 2.x 文件翻譯 - Lesson 12:Quartz的其他各種特性quartz
- .NET Core 基於Quartz的UI視覺化操作元件 GZY.Quartz.MUI 簡介quartzUI視覺化元件
- ApiBoot - ApiBoot Quartz 使用文件APIbootquartz
- springmvc+quartz叢集+sqlserverSpringMVCquartzSQLServer
- Quartz 定時任務管理類quartz
- Spring Quartz定時器&n…Springquartz定時器
- Quartz在Spring中叢集quartzSpring