日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Quartz调度器学习--基本概念

發(fā)布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Quartz调度器学习--基本概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,觸發(fā)器有一個startTime 和 endTime 屬性,startTime 規(guī)定Trigger何時生效,endTime規(guī)定Trigger何時失效。

2,Trigger的優(yōu)先級:Quartz管理著一個線程池,用來進行作業(yè)的執(zhí)行。當可用線程數(shù)目少于目前待調度的作業(yè)數(shù)目時,哪個作業(yè)的Trigger優(yōu)先級高,該作業(yè)就會優(yōu)先分配 work thread 執(zhí)行。當然,作業(yè)的Trigger優(yōu)先級的比較只在具有相同調度時間的作業(yè)之間比較,如所有10點鐘執(zhí)行的作業(yè);而9點鐘執(zhí)行的作業(yè)的Trigger優(yōu)先級盡管低于10點鐘作業(yè)的Trigger優(yōu)先級。顯然,9點鐘的作業(yè)還是先執(zhí)行的。

?

3,Misfire Instructions----錯過作業(yè)觸發(fā)時機時怎么辦?

Quartz中有一個默認的處理機制--"smart policy"機制。同時,你也可以在為作業(yè)配置Triggers時,明確指定作業(yè)的misfire instructions。當使用“smart policy”機制時,對于SimpleTrigger而言,它會動態(tài)地選擇一個合適的觸發(fā)機制,SimpleTrigger.updateAfterMisfire()方法解釋了此種情況下如何觸發(fā)作業(yè)。

SimpleTrigger以常量的形式預定義了一些觸發(fā)機制,這些機制如下:

MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY MISFIRE_INSTRUCTION_FIRE_NOW MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT

?

4,Quartz提供了一個Calendar對象(不是java.util.Calendar)來更加精細化地設置作業(yè)的觸發(fā)條件。Calendar主要的用途就是:在需要重復地調度作業(yè)時,排除某些特殊的日期(比如周末時不執(zhí)行作業(yè))。

?

5,如何構造一個Trigger,Trigger監(jiān)聽器能監(jiān)聽什么?

Trigger的構造主要牽涉到三個類:TriggerBuilder、SimpleScheduleBuilder、DateBuilder。通過靜態(tài)導入,可以以一種DSL語言風格形式來編寫代碼。Trigger監(jiān)聽器可以監(jiān)聽Trigger在指定的時間被觸發(fā)了,或者未被觸發(fā)。也可監(jiān)聽Trigger已經(jīng)觸發(fā)“完畢”。

?

6,如何創(chuàng)建監(jiān)聽器,如何注冊監(jiān)聽器?

創(chuàng)建Trigger監(jiān)聽器:implements TriggerListener 接口或者繼承TriggerListenerSupport類。implements TriggerListener 接口需要實現(xiàn)接口中定義的所有的方法,而繼承TriggerListenerSupport類只需要重寫(Override)自己感興趣的方法。同理創(chuàng)建Job監(jiān)聽器。

監(jiān)聽器的注冊需要ListenerManager類來管理注冊的監(jiān)聽器,并需要Matcher類來匹配在事件發(fā)生時,是哪個Job執(zhí)行需要執(zhí)行何種操作。

?

7,調度監(jiān)聽器--SchedulerListener

調度器監(jiān)聽器監(jiān)聽的事件包括:Job/Trigger的執(zhí)行或觸發(fā)、Job/Trigger的刪除、通知調度器即將關閉以及調度器本身出錯。

?

8,作業(yè)的存儲--RAMJobStore 和 JDBCJobStore

RAMJobStore 把整個作業(yè)存儲在內存中,作業(yè)運行完成后,就被刪除了。

JDBCJobStore 將作業(yè)存儲在數(shù)據(jù)庫中,在使用JDBCJobStore之前,必須先配置好數(shù)據(jù)庫,并創(chuàng)建一系列的數(shù)據(jù)庫表來存儲作業(yè)的相關信息。

在Quartz安裝包的"docs/dbTables"目錄下已經(jīng)有相關的數(shù)據(jù)庫操作腳本來創(chuàng)建這些表了,只需要修改一下符合自己安裝的數(shù)據(jù)庫即可。

本文轉自hapjin博客園博客,原文鏈接:http://www.cnblogs.com/hapjin/p/4903417.html,如需轉載請自行聯(lián)系原作者

總結

以上是生活随笔為你收集整理的Quartz调度器学习--基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。