quartz學習筆記 幾個重要的概念

2021-09-11 19:38:49 字數 1825 閱讀 1188

因為專案的需求開始學習接觸定時任務框架——quartz

job

實現定時任務執行的內容介面,實際的任務類需要實現該介面,該介面只有乙個方法,execute(),即定時任務的業務邏輯寫在該方法體中即可。

quart框架不會直接呼叫我們所定義的job類,而是通過反射機制實現乙個類jobdetail。對於job和jobdetail,我的理解是:job是開發者的業務邏輯(排程任務的類容),而對於quartz框架來說則是jobdetail。

//定義乙個任務

jobdetail jobdetail = jobbuilder

.newjob(myjob.class)

.withidentity("myjobname","myjobgroup")

.build();

3.trigger定時任務的執行時機,即,什麼時候執行(觸發),怎麼樣執行。trigger是乙個藉口,其中實現類有多種,其中最常用的是:******trigger和crontrigger。這兩個實現類各自有各自的不同

******trigger:滿足的排程需求是,在具體的時間點執行一次,或在具體的時間點執行,並且能在指定的時間間隔重複執行若干次。比如在2023年3月2日某一時間觸發,或者在這個時間點觸發,並且之後以每多少秒的時間間隔執行多少次。

所以******trigger的基本屬性包括:開始時間,結束時間,重複次數,重複的時間間隔。可以發現******trigger能夠定義的任務觸發時機都是,在乙個準確的時間執行,然後執行多少次(沒多少時間重複一次,等多少時間後結束或者一直重複下去)

trigger trigger = triggerbuilder

.newtrigger()

.withidentity("mytriggername","mytriigergroup")

.withdescription("this is a trigger !")

.withschedule(******schedulebuilder

.******schedule()

//每五秒重複一次

.withintervalinseconds(5)

.repeatforever())

.build();

crontrigger:滿足的排程時機更加的複雜些。即它是基於時間表的,也就說可以定義在某一時間點都會去觸發的任務,比如,在每週的週六早上八點同步一次資料到某某系統。

具體事例(**):quartz官方文件

4.schedule

理解:將任務和觸發器組合後交給quartz框架進行執行。

scheduler scheduler = stdschedule***ctory.getdefaultscheduler();

scheduler.schedulejob(jobdetail,trigger);

scheduler.start();

5.stdschedule***ctory工廠類,獲取需要的schedule例項。

Quartz學習筆記

一 核心概念 job 表示乙個工作,要執行的具體內容。此介面中只有乙個方法 void execute jobexecutioncontext context jobdetail 表示乙個具體的可執行的排程程式,job 是這個可執行程排程程式所要執行的內容,另外 jobdetail 還包含了這個任務排...

目錄 Quartz學習筆記

00.quartz 簡介 01.quartz 環境搭建 基於記憶體 02.quartz 環境搭建 基於jdbc mysql 03.quartz 定時任務 job 和 jobdetail 04.quartz 觸發器 05.quartz cron 表示式詳解 06.quartz joblistener ...

深度學習 幾個重要的數學概念

support支援度 p a b 即a和b這兩個項集在事務集d中同時出現的概率。confidence置信度 p b a 即在出現項集a的事務集d中,項集b也同時出現的概率。支援度 support 的公式是 support a b p a u b 支援度揭示了a與b同時出現的概率。如果a與b同時出現的...