中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Quartz開發(fā)企業(yè)級任務(wù)調(diào)度應(yīng)用

      時間:2024-08-22 23:00:10 J2EE培訓(xùn) 我要投稿
      • 相關(guān)推薦

      Quartz開發(fā)企業(yè)級任務(wù)調(diào)度應(yīng)用

        Quartz 是 OpenSymphony 開源組織在任務(wù)調(diào)度領(lǐng)域的一個開源項(xiàng)目,完全基于 Java 實(shí)現(xiàn)。該項(xiàng)目于 2009 年被 Terracotta 收購,目前是 Terracotta 旗下的一個項(xiàng)目。讀者可以到 http://www.quartz-scheduler.org/站點(diǎn)下載 Quartz 的發(fā)布版本及其源代碼。在產(chǎn)品開發(fā)中使用的是版本 1.8.4,因此本文內(nèi)容基于該版本。

        作為一個優(yōu)秀的開源調(diào)度框架,Quartz 具有以下特點(diǎn):

        強(qiáng)大的調(diào)度功能,例如支持豐富多樣的調(diào)度方法,可以滿足各種常規(guī)及特殊需求;

        靈活的應(yīng)用方式,例如支持任務(wù)和調(diào)度的多種組合方式,支持調(diào)度數(shù)據(jù)的多種存儲方式;

        分布式和集群能力,Terracotta 收購后在原來功能基礎(chǔ)上作了進(jìn)一步提升。本文暫不討論該部分內(nèi)容

        另外,作為 Spring 默認(rèn)的調(diào)度框架,Quartz 很容易與 Spring 集成實(shí)現(xiàn)靈活可配置的調(diào)度功能。

        下面是本文中用到的一些專用詞匯,在此聲明:

        scheduler:任務(wù)調(diào)度器 trigger:觸發(fā)器,用于定義任務(wù)調(diào)度時間規(guī)則 job:任務(wù),即被調(diào)度的任務(wù) misfire:錯過的,指本來應(yīng)該被執(zhí)行但實(shí)際沒有被執(zhí)行的任務(wù)調(diào)度

        Quartz 任務(wù)調(diào)度的基本實(shí)現(xiàn)原理

        核心元素

        Quartz 任務(wù)調(diào)度的核心元素是 scheduler, trigger 和 job,其中 trigger 和 job 是任務(wù)調(diào)度的元數(shù)據(jù), scheduler 是實(shí)際執(zhí)行調(diào)度的控制器。

        在 Quartz 中,trigger 是用于定義調(diào)度時間的元素,即按照什么時間規(guī)則去執(zhí)行任務(wù)。Quartz 中主要提供了四種類型的 trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,和 NthIncludedDayTrigger。這四種 trigger 可以滿足企業(yè)應(yīng)用中的絕大部分需求。我們將在企業(yè)應(yīng)用一節(jié)中進(jìn)一步討論四種 trigger 的功能。

        在 Quartz 中,job 用于表示被調(diào)度的任務(wù)。主要有兩種類型的 job:無狀態(tài)的(stateless)和有狀態(tài)的(stateful)。對于同一個 trigger 來說,有狀態(tài)的 job 不能被并行執(zhí)行,只有上一次觸發(fā)的任務(wù)被執(zhí)行完之后,才能觸發(fā)下一次執(zhí)行。Job 主要有兩種屬性:volatility 和 durability,其中 volatility 表示任務(wù)是否被持久化到數(shù)據(jù)庫存儲,而 durability 表示在沒有 trigger 關(guān)聯(lián)的時候任務(wù)是否被保留。兩者都是在值為 true 的時候任務(wù)被持久化或保留。一個 job 可以被多個 trigger 關(guān)聯(lián),但是一個 trigger 只能關(guān)聯(lián)一個 job。

        在 Quartz 中, scheduler 由 scheduler 工廠創(chuàng)建:DirectSchedulerFactory 或者 StdSchedulerFactory。 第二種工廠 StdSchedulerFactory 使用較多,因?yàn)?DirectSchedulerFactory 使用起來不夠方便,需要作許多詳細(xì)的手工編碼設(shè)置。 Scheduler 主要有三種:RemoteMBeanScheduler, RemoteScheduler 和 StdScheduler。本文以最常用的 StdScheduler 為例講解。這也是筆者在項(xiàng)目中所使用的 scheduler 類。

        數(shù)據(jù)存儲

        Quartz 中的 trigger 和 job 需要存儲下來才能被使用。Quartz 中有兩種存儲方式:RAMJobStore, JobStoreSupport,其中 RAMJobStore 是將 trigger 和 job 存儲在內(nèi)存中,而 JobStoreSupport 是基于 jdbc 將 trigger 和 job 存儲到數(shù)據(jù)庫中。RAMJobStore 的存取速度非常快,但是由于其在系統(tǒng)被停止后所有的數(shù)據(jù)都會丟失,所以在通常應(yīng)用中,都是使用 JobStoreSupport。

        在 Quartz 中,JobStoreSupport 使用一個驅(qū)動代理來操作 trigger 和 job 的數(shù)據(jù)存儲:StdJDBCDelegate。StdJDBCDelegate 實(shí)現(xiàn)了大部分基于標(biāo)準(zhǔn) JDBC 的功能接口,但是對于各種數(shù)據(jù)庫來說,需要根據(jù)其具體實(shí)現(xiàn)的特點(diǎn)做某些特殊處理,因此各種數(shù)據(jù)庫需要擴(kuò)展 StdJDBCDelegate 以實(shí)現(xiàn)這些特殊處理。

      【Quartz開發(fā)企業(yè)級任務(wù)調(diào)度應(yīng)用】相關(guān)文章:

      JSP應(yīng)用開發(fā)的特點(diǎn)10-14

      Web Service的開發(fā)與應(yīng)用基礎(chǔ)07-12

      NtServer中層企業(yè)級試題及答案10-13

      企業(yè)級系統(tǒng)架構(gòu)的技術(shù)特點(diǎn)07-25

      LabView開發(fā)嵌入式應(yīng)用的技巧06-07

      嵌入式系統(tǒng)的應(yīng)用和開發(fā)09-15

      辦公自動化的應(yīng)用與開發(fā)07-10

      sun認(rèn)證JSP應(yīng)用開發(fā)背景及特點(diǎn)07-10

      利用PowerBuilder開發(fā)計算機(jī)WEB應(yīng)用09-08

      HTML5開發(fā)移動應(yīng)用的特性有哪些08-22

      主站蜘蛛池模板: 色琪琪一区二区三区亚洲区| 亚洲一区二区婷婷久久| 日本熟妇高潮爽视频在线观看 | 中文字幕日本熟妇少妇| 日韩精品一区二区三区激情视频| 97色人阁俺也去人人人人人| 国产人妖av一区二区在线观看| 女人的天堂av免费看| 国产麻豆精品久久一二三| 国产成人cao在线| 无码专区亚洲avl| 国产9 9在线 | 免费| 日本黄色一区二区三区视频| 建始县| 免费人成视频网站在线观看不卡| 久久久久亚洲AV无码去区首| 国产在线欧美日韩精品一区二区| 精品一区二区三区在线视频观看| 贺兰县| 亚洲中文字幕人妻诱惑| 自拍视频在线观看三级| 日本加勒比东京热日韩| 亚洲最大av免费观看| 麻豆免费观看视频在线观看| 亚洲国产一区二区三区在观看| 国产一级r片内射免费视频| 亚洲色欲色欲大片WWW无码| 平度市| 灵寿县| 99久久精品国产毛片| 久久青草国产免费观看| 迁安市| 国产亚洲精品综合99久久| 久久久久国产精品四虎| AV熟妇导航网| 女人一级特黄大片国产精品| 日韩国产欧美成人一区二区影院| 老熟女一区二区免费| 超级碰碰人妻中文字幕| 四虎无码精品a∨在线观看| 国产亚洲成人精品一区|