quartz框架(四)-Job相關(guān)內(nèi)容

Job相關(guān)內(nèi)容

本篇博文,博主主要介紹job相關(guān)的內(nèi)容。

Job

job是業(yè)務(wù)方法需要實(shí)現(xiàn)的接口,代表需要被調(diào)度框架進(jìn)行調(diào)度的任務(wù)。job源碼如下所示,從源碼中我們可以看到,job接口只有一個(gè)excute方法,它的入?yún)⒅挥幸粋€(gè)JobExecutionContext,并且允許拋出JobExecutionException異常。


public interface Job {

    void execute(JobExecutionContext context)
        throws JobExecutionException;

}

JobExecutionContext,是任務(wù)執(zhí)行的上下文。比如我們可以從JobDetail中獲取到該Job關(guān)聯(lián)到的一些數(shù)據(jù),如該Job對(duì)應(yīng)的JobKey,JobDataMap。

JobExecutionException,是job運(yùn)行中可能會(huì)產(chǎn)生的異常。JobRunShell會(huì)對(duì)該異常進(jìn)行捕捉,然后由對(duì)應(yīng)的Trigger進(jìn)行處理。JobRunShell和Trigger,博主會(huì)在后面的博文進(jìn)行介紹。

JobDetail

JobDetail是一個(gè)接口,定義了Job相關(guān)的一些Get方法。

JobDetailImpl

JobDetailImpl是JobDetail的實(shí)現(xiàn),它的屬性如下所示:

  1. jobClass,job的class。
  2. name, job的名稱。
  3. group,job的分組。
  4. ...

JobBuilder

JobBuilder是JobDetail對(duì)象的構(gòu)造器,JobBuilder使用了建造者設(shè)計(jì)模式,它的使用如下所示。

JobDetail job = JobBuilder.newJob(HelloJob.class)
                .withIdentity("job1", "group1")
                .build();

常用注解

這些常用的注解都需要作用在具體的Job類上。

  1. PersistJobDataAfterExecution。在job執(zhí)行完之后,需要持久化存儲(chǔ)任務(wù)數(shù)據(jù)(JobDataMap)。
  2. DisallowConcurrentExecution。不允許允許并發(fā)執(zhí)行該任務(wù)。

博主微信公眾號(hào)

<img src="https://gitee.com/chenhaogit/blogimages/raw/master/xsj/wzgzh-8cm.jpg" style="float:right"/>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是根據(jù) Quartz定時(shí)器官方文檔翻譯的,只翻譯了第1到第10課,如有翻譯不精確的地方,請(qǐng)讀者指正,互相學(xué)習(xí),...
    ChinaXieShuai閱讀 8,747評(píng)論 1 19
  • (一)、Job ??Job可以理解為就是一個(gè)工作任務(wù),代碼中就是一個(gè)實(shí)現(xiàn)了org.quartz.Job或org.q...
    ChienSun閱讀 10,675評(píng)論 0 10
  • 任務(wù)調(diào)度簡(jiǎn)介 1、什么時(shí)候需要任務(wù)調(diào)度 業(yè)務(wù)場(chǎng)景:1)賬單日或者還款日上午 9 點(diǎn),給每個(gè)信用卡客戶發(fā)送賬單通知,...
    vincent浩哥閱讀 2,344評(píng)論 0 0
  • Quartz是什么 Quartz是一個(gè)開源的作業(yè)調(diào)度包,能夠運(yùn)行在幾乎任何java項(xiàng)目中,小到單機(jī)應(yīng)用,大到電商系...
    零度沸騰_yjz閱讀 3,288評(píng)論 0 9
  • 什么是定時(shí)任務(wù)調(diào)度 基于給定的時(shí)間點(diǎn),給定的時(shí)間間隔或者給定的執(zhí)行次數(shù)自動(dòng)完成執(zhí)行任務(wù) 在Java中的定時(shí)調(diào)度工具...
    Hey_Shaw閱讀 2,639評(píng)論 2 1

友情鏈接更多精彩內(nèi)容