1. 程式人生 > >瞭解Job和JobDeatil ,JobDataMap (三)

瞭解Job和JobDeatil ,JobDataMap (三)

一:定義

Job:實現任務邏輯的介面。

JobDeatil:JobDeatil為Job提供了許多設定屬性,以及JobDataMap成員變數屬性,他用來儲存特定的Job例項狀態資訊,排程器需要使用JobDeatil物件新增Job例項。

二:

Job介面原始碼:

public interface Job {

    void execute(JobExecutionContext context)
        throws JobExecutionException;

}

Job有且只有一個方法:execute()   負責執行業務邏輯。

JobExecutionContext:包含job執行的上下文。裡面包含了一個重要的類(JobDataMap :主要是包含我們想要輸入的引數)。

這個方法要丟擲一個異常 JobExecutionException。

JobDeatil的重要屬性:

    name:任務的名稱。

    group:任務所在的組(預設值:DEFAULT)。

    jobClass:任務的實現類。

    jobDataMap:傳參的作用。

  程式碼是上一節的程式碼:

 實現程式碼:JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("jobName","group").build();

JobDetail jobDetail = JobBuilder.newJob(JobClass.class
).withIdentity("jobName","group").build(); System.out.println(jobDetail.getKey().getName());//jobName System.out.println(jobDetail.getKey().getGroup());//group System.out.println(jobDetail.getJobClass().getName());//quartz.JobClass

 

jobDataMap

JobDataMap中可以包含不限量的(序列化的)資料物件,在job例項執行的時候,可以使用其中的資料;JobDataMap是Java Map介面的一個實現,額外增加了一些便於存取基本型別的資料的方法。

實現:

JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("jobName", "group")
                .usingJobData("Double", 2.0D)
                .usingJobData("String", "字串").build();
        System.out.println(jobDetail.getJobDataMap().getString("String"));//字串
        System.out.println(jobDetail.getJobDataMap().getDoubleValue("Double"));//2.0

在job的執行過程中,可以從JobDataMap中取出資料

 

第二種獲取的:

 是在JobClass裡設定屬性,這裡的屬性名稱必須和jobDetail設定的key值相同;

 

package quartz;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;

public class JobClass implements Job {
    private String stringValue;
    private Double doubleValue;

    public String getStringValue() {
        return stringValue;
    }

    public void setStringValue(String stringValue) {
        this.stringValue = stringValue;
    }

    public Double getDoubleValue() {
        return doubleValue;
    }

    public void setDoubleValue(Double doubleValue) {
        this.doubleValue = doubleValue;
    }

    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        System.out.println(stringValue + doubleValue);
        /*
         * JobKey jobKey=arg0.getJobDetail().getKey();
         * System.out.println(jobKey.getGroup()+jobKey.getName());
         */

        /*
         * Date date=new Date(); SimpleDateFormat sf=new SimpleDateFormat(
         * "yyyy-MM-dd HH:mm:ss"); System.out.println("當前時間為:"+sf.format(date));
         * // 編寫業務邏輯 System.out.println("hello Quartz");
         */
        /*
         * JobDataMap jobDataMap=arg0.getJobDetail().getJobDataMap();
         * System.out.println(jobDataMap.getDouble("Double"));
         * System.out.println(jobDataMap.getString("String"));
         */


    }

}

三:生命週期

每次在排程器在執行job的時候,他是在execute()方法前建立一個新的job例項。當呼叫完之後,關聯的job物件例項會被釋放,釋放之後將會被垃圾回收機制回收。

相關推薦

瞭解JobJobDeatil JobDataMap ()

一:定義 Job:實現任務邏輯的介面。 JobDeatil:JobDeatil為Job提供了許多設定屬性,以及JobDataMap成員變數屬性,他用來儲存特定的Job例項狀態資訊,排程器需要使用JobDeatil物件新增Job例項。 二: Job介面原始碼: public interface J

從零開始學習音視頻編程技術() 開發環境搭建(Qt4.86手動設置環境主要就是設置g++qmake比較透徹附下載鏈接)

路徑 details 分享 baidu 末尾 是我 其中 找到 source 1.先下載安裝Qt 我們使用的版本是4.8。 可以自行百度下載也可以從下面的網盤地址下載: Qt庫和編譯器下載: 鏈接:http://pan.baidu.com/s/1hrUxLIG 密碼

2018.5.8 七周次課(firewalldnetfilteriptables語法)

Linux網絡相關 firewalld和netfilter 防火墻 netfilter5表5鏈介紹 iptables語法 Linux網絡相關 centOS版本6裏,如果想用ifconfig 得安裝個net-tools [root@localhost ~]# yum install

jQuery事件機制動畫效果工具其他操作(

不同 匹配 fad namespace event 返回 animate sin 繼續 jQuery事件機制 1 事件操作 1.1 頁面載入事件 $(document).ready(function(){ // 在這裏寫你的代碼... }); 或者 $(function

乾老師談大發快一分鐘回血上岸技巧值走勢規律 值得學習 wangY8986

老師玩cai已經兩年了,開始也交過不少學費,還好運氣不錯,在沒有徹底失望之前終於積累了一定的經驗,有了自己的一套玩法。對於cai轉不賺錢這個問題。我覺得這個世界上除了TC公務員沒有什麼是一定賺錢的。這些都是老師多年來總結出來的經驗現在的cai大多都是私彩,也就是所謂的黑cai。cai有兩種:一種是官方cai,

es6 陣列例項的 entries() keys() values() ES6 提供個新的方法 —— entries()keys()values() —— 用於遍歷陣列。它們都返回一個遍歷器物件可以用for...of迴圈進行遍歷唯一的區別是keys()是對鍵名的遍歷、values(

ES6 提供三個新的方法 —— entries(),keys()和values() —— 用於遍歷陣列。它們都返回一個遍歷器物件,可以用for...of迴圈進行遍歷,唯一的區別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷

深入瞭解new的過程callapplybind的區別

話不多數,直接上程式碼 1 //1、new的過程發生了什麼 2 function create () { 3 //建立了一個物件 4 var obj = new Object() 5 //獲取建構函式 6

談IO中的阻塞非阻塞同步異步及種IO模型

狀態 阻塞io 舉例 最大的 data- str 被調用 當我 返回 什麽是同步和異步? 燒水,我們都是通過熱水壺來燒水的。在很久之前,科技還沒有這麽發達的時候,如果我們要燒水,需要把水壺放到火爐上,我們通過觀察水壺內的水的沸騰程度來判斷水有沒有燒開。隨著科

Python基礎()--- Python面向物件oop類、方法變數繼承

一、面向物件oop ----------------------------------------------------- 1.類 用來描述具有相同的屬性和方法的物件的集合。 它定義了該集合中每個物件所共有的屬性和方法。 物件是類的例項。

“鍵””正規化”瞭解一下~

超鍵: 能確定一條資訊的屬性或屬性集合 候選鍵: 最小超鍵,能確定一條資訊的最小屬性集合(可能有幾組,也可能只一組) 主鍵: 從候選鍵中任意定義其中的一組屬性集合,即為主鍵 外來鍵: 兩個關係中,一個關係的主鍵即為另一關係的外來鍵,||該外來鍵需在此關係中做普通屬性||

javaweb:常用的web設計模式(Model1Model2javaweb層架構mvc)層結構案例展示

Jsp模式介紹: SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。 JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程式,這種模式下,JavaBean用於封裝業務

北京java程式設計師畢業年同學為什麼會有3K3W的差距

我一直相信人都是群居動物,並且在這一群人裡,每個人都可以相互影響,所以真正影響一個人性格,品質,能力乃至個人發展的,是你所處的環境。   為什麼可以提升到個人發展這麼高的高度,影響個人發展的難道不應該是自己的努力,勤奮,積極向上的心嗎?沒錯,但是這些特質都屬於個人的性格,歸根結底還

《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式過程(第部分並行查詢及管道函式)

  1. PARALLEL_ENABLE子句(啟用並行查詢以提高效能) 首次接觸,學習一下: PARALLEL_ENABLE lets you designate a function to support parallel query capabilities. This

在Linux下使用makefile寫一個進度條以及對\r \n緩衝區的簡單瞭解

1.’\r’和‘\n’的區別 \r:表示回車:它只會回到這一行的最前邊 \n:表示回車換行。它會回到這一行的最前邊,然後跳到下一行  。 2.緩衝區 c函式如printf(),在輸出時,shell預設將資料輸出到標準輸出如顯示器,而printf()在

我們聽過智商情商但你瞭解過財商嗎?-民興商學院

  財商是指一個人在財務方面的智力,即理財的智慧,包括:一是正確認識金錢及金錢規律的能力;二是正確使用金錢及金錢規律的能力。   信用財商是指你擁有多少財富,並不代表你就可以隨便花這些錢,而是代表你有支配這些錢的權力,財富多少意味著調動資源的大小。     信用卡背後的百

Windows下Nginx配置支援HTTPS協議(已申請正式的SSL證書私鑰的步可以跳過)

以Windows 10系統為例。 一、安裝OpenSSL 然後安裝在C:\OpenSSL-Win64下。 然後配置環境變數。在系統環境變數中新增環境變數: 變數名:OPENSSL_HOME 變數值:C:\OpenSSL-Win64\bin; (變數值為OPEN

求方程 的根個函式分別求當b^2-4ac大於0、等於0、小於0時的根並輸出結果。從主函式輸入a、b、c的值。

解題思路: 一元二次方程 ax²+bx+c=0(a≠0)                  其求根依據判定式△的取值為三種( △=b²-4ac )     1. △>0,方程有兩個不相等的實數根;          x1=[-b+√(△)]/2a;   //( 

PHP函式的引數裡前面個點的形式...$args是什麼含義用法?

這是PHP5.6新增的功能(一種語法糖):  可以通過...將函式引數儲存在緊接的可遍歷的變數中。 function add($a, $b, $c) { return $a + $b + $c; } $num=[2, 3]; echo add(1, ...$num);

質量管理個概念:QC、QAQM你能分得清嗎?

今天這裡談的QC、QA和QM,不是崗位或職位,而是一種概念或質量管理的不同時期所關注的重點。1、產品早期的質量管理(工業化雛形期)側重於對終產品的檢測、測試,即QC(品質控制)時代。這個時期的質量管理是以產品為主,在生產人員完成了生產任務後,有專門的人員(簡稱品控人員或QC人