瞭解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物件例項會被釋放,釋放之後將會被垃圾回收機制回收。
相關推薦
瞭解Job和JobDeatil ,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 七周三次課(firewalld和netfilter,iptables語法)
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的過程,和call,apply,bind的區別
話不多數,直接上程式碼 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設計模式(Model1,Model2,javaweb三層架構和mvc)和三層結構案例展示
Jsp模式介紹: SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。 JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程式,這種模式下,JavaBean用於封裝業務
北京java程式設計師,畢業三年同學為什麼會有3K和3W的差距
我一直相信人都是群居動物,並且在這一群人裡,每個人都可以相互影響,所以真正影響一個人性格,品質,能力乃至個人發展的,是你所處的環境。 為什麼可以提升到個人發展這麼高的高度,影響個人發展的難道不應該是自己的努力,勤奮,積極向上的心嗎?沒錯,但是這些特質都屬於個人的性格,歸根結底還
《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、QA和QM,你能分得清嗎?
今天這裡談的QC、QA和QM,不是崗位或職位,而是一種概念或質量管理的不同時期所關注的重點。1、產品早期的質量管理(工業化雛形期)側重於對終產品的檢測、測試,即QC(品質控制)時代。這個時期的質量管理是以產品為主,在生產人員完成了生產任務後,有專門的人員(簡稱品控人員或QC人
C#基礎-033 建立一個學員類,並設計三個欄位用於表示學生的成績(語文、數學、英語);然後定義一個數組表示一個班的學生(10人),依次輸入每個學生的資訊和成績,輸入的同時將學員的每科成績劃分等級
class Student { public double _chineseScore; public double _mathScore; pu