欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java框架Quartz中API、Jobs和Trigger詳解

 更新時間:2023年11月13日 10:06:43   作者:mumuwei_l  
這篇文章主要介紹了Java框架Quartz中API、Jobs和Trigger詳解,JobDetail?對象是在將?job?加入?scheduler?時,由客戶端程序(你的程序)創(chuàng)建的,它包含?job?的各種屬性設(shè)置,以及用于存儲?job?實例狀態(tài)信息的?JobDataMap,需要的朋友可以參考下

Quartz API

Quartz API的關(guān)鍵接口是:

  • Scheduler - 與調(diào)度程序交互的主要API。
  • Job - 你想要調(diào)度器執(zhí)行的任務(wù)組件需要實現(xiàn)的接口
  • JobDetail - 用于定義作業(yè)的實例。
  • Trigger(即觸發(fā)器) - 定義執(zhí)行給定作業(yè)的計劃的組件。
  • JobBuilder - 用于定義/構(gòu)建 JobDetail 實例,用于定義作業(yè)的實例。
  • TriggerBuilder - 用于定義/構(gòu)建觸發(fā)器實例。
  • Scheduler 的生命期,從 SchedulerFactory 創(chuàng)建它時開始,到 Scheduler 調(diào)用shutdown() 方法時結(jié)束;Scheduler 被創(chuàng)建后,可以增加、刪除和列舉 Job 和 Trigger,以及執(zhí)行其它與調(diào)度相關(guān)的操作(如暫停 Trigger)。但是,Scheduler 只有在調(diào)用 start() 方法后,才會真正地觸發(fā) trigger(即執(zhí)行 job)

Job 和 Trigger

一個 job 就是一個實現(xiàn)了 Job 接口的類,該接口只有一個方法:

Job 接口:

  package org.quartz;

  public interface Job {

    public void execute(JobExecutionContext context)
      throws JobExecutionException;
  }

job的一個 trigger 被觸發(fā)后,execute() 方法會被 scheduler 的一個工作線程調(diào)用;傳遞給 execute() 方法的 JobExecutionContext 對象中保存著該 job 運行時的一些信息 ,執(zhí)行 job 的 scheduler 的引用,觸發(fā) job 的 trigger 的引用,JobDetail 對象引用,以及一些其它信息。

JobDetail 對象是在將 job 加入 scheduler 時,由客戶端程序(你的程序)創(chuàng)建的。它包含 job 的各種屬性設(shè)置,以及用于存儲 job 實例狀態(tài)信息的 JobDataMap。

Trigger 用于觸發(fā) Job 的執(zhí)行。當你準備調(diào)度一個 job 時,你創(chuàng)建一個 Trigger 的實例,然后設(shè)置調(diào)度相關(guān)的屬性。Trigger 也有一個相關(guān)聯(lián)的 JobDataMap,用于給 Job 傳遞一些觸發(fā)相關(guān)的參數(shù)。Quartz 自帶了各種不同類型的 Trigger,最常用的主要是 SimpleTrigger 和 CronTrigger。

SimpleTrigger 主要用于一次性執(zhí)行的 Job(只在某個特定的時間點執(zhí)行一次),或者 Job 在特定的時間點執(zhí)行,重復(fù)執(zhí)行 N 次,每次執(zhí)行間隔T個時間單位。CronTrigger 在基于日歷的調(diào)度上非常有用,如“每個星期五的正午”,或者“每月的第十天的上午 10:15”等。

為什么既有 Job,又有 Trigger 呢?

例如,Job 被創(chuàng)建后,可以保存在 Scheduler 中,與 Trigger 是獨立的,同一個 Job可以有多個 Trigger;

這種松耦合的另一個好處是,當與 Scheduler 中的 Job 關(guān)聯(lián)的 trigger 都過期時,可以配置 Job 稍后被重新調(diào)度,而不用重新定義 Job;

還有,可以修改或者替換 Trigger,而不用重新定義與之關(guān)聯(lián)的 Job。

Key

將 Job 和 Trigger 注冊到 Scheduler 時,可以為它們設(shè)置 key,配置其身份屬性。

Job 和 Trigger 的 key(JobKey 和 TriggerKey)可以用于將 Job 和 Trigger 放到不同的分組(group)里,然后基于分組進行操作。

同一個分組下的 Job 或 Trigger 的名稱必須唯一,即一個 Job 或 Trigger 的 key 由名稱(name)和分組(group)組成。

到此這篇關(guān)于Java框架Quartz中API、Jobs和Trigger詳解的文章就介紹到這了,更多相關(guān)Quartz的API、Jobs和Trigger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis注解CRUD與執(zhí)行流程深入探究

    MyBatis注解CRUD與執(zhí)行流程深入探究

    這篇文章主要介紹了MyBatis注解CRUD與執(zhí)行流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • 超級詳細的Java安裝教程(Mac版)

    超級詳細的Java安裝教程(Mac版)

    Java是一種廣泛使用的編程語言,可用于開發(fā)各種類型的應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于Mac系統(tǒng)下Java安裝的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • Linux中Elasticsearch的安裝詳細步驟

    Linux中Elasticsearch的安裝詳細步驟

    這篇文章主要介紹了Linux中Elasticsearch的安裝詳細步驟,Elasticsearch(ES)是一種分布式、可擴展的搜索和分析引擎,基于Lucene構(gòu)建,它支持實時數(shù)據(jù)處理、全文搜索、實時分析等多種功能,需要的朋友可以參考下
    2024-12-12
  • JSON序列化Redis讀取出錯問題解決方案

    JSON序列化Redis讀取出錯問題解決方案

    這篇文章主要介紹了JSON序列化Redis讀取出錯問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java 中一個類提供一個默認對象的多種方法

    Java 中一個類提供一個默認對象的多種方法

    這篇文章主要介紹了Java 中一個類提供一個默認對象的多種方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 解決SpringMvc中普通類注入Service為null的問題

    解決SpringMvc中普通類注入Service為null的問題

    這篇文章主要介紹了解決SpringMvc中普通類注入Service為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 簡單介紹java中equals以及==的用法

    簡單介紹java中equals以及==的用法

    這篇文章主要介紹了簡單介紹java中equals以及==的用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java中的邏輯控制語句詳解

    Java中的邏輯控制語句詳解

    下面小編就為大家?guī)硪黄狫ava邏輯控制的基礎(chǔ)文章。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-08-08
  • 使用SpringBoot根據(jù)配置注入接口的不同實現(xiàn)類(代碼演示)

    使用SpringBoot根據(jù)配置注入接口的不同實現(xiàn)類(代碼演示)

    使用springboot開發(fā)時經(jīng)常用到@Autowired和@Resource進行依賴注入,但是當我們一個接口對應(yīng)多個不同的實現(xiàn)類的時候如果不進行一下配置項目啟動時就會報錯,那么怎么根據(jù)不同的需求注入不同的類型呢,感興趣的朋友一起看看吧
    2022-06-06
  • Java并發(fā)編程service層處理并發(fā)事務(wù)加鎖可能會無效問題

    Java并發(fā)編程service層處理并發(fā)事務(wù)加鎖可能會無效問題

    這篇文章主要介紹了Java并發(fā)編程service層處理并發(fā)事務(wù)加鎖可能會無效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論