quartz(六)定時任務(wù)的暫停、關(guān)閉等操作說明

定時任務(wù)的暫停、關(guān)閉等操作說明

基于quartz3.0版本總結(jié)一些quartz定時任務(wù)的暫停、恢復(fù)、刪除等操作。

定時任務(wù)的刪除等操作主要是基于JobKey或TriggerKey。

暫停Job:
    //通過JobName以及JobGroup獲得JobKey
   JobKey jobKey = JobKey.jobKey("aaaa" + 1, JOB_GROUP_NAME);
        try {
            Scheduler scheduler = schedulerFactoryBean.getScheduler();
            scheduler .pauseJob(jobKey);
        } catch (SchedulerException e) {
            e.printStackTrace();
        }

注:此處暫停job會根據(jù)jobkey暫停job及對應(yīng)的trigger

恢復(fù)Job:
    //通過JobName以及JobGroup獲得JobKey
    JobKey jobKey = JobKey.jobKey("aaaa" + 1, JOB_GROUP_NAME);
    try {
        schedulerFactoryBean.getScheduler().resumeJob(jobKey);
    } catch (SchedulerException e) {
        e.printStackTrace();
    }
刪除job

方法一:

    //通過JobName以及JobGroup獲得JobKey
    JobKey jobKey = JobKey.jobKey("aaaa" + 1, JOB_GROUP_NAME);
    try {
        schedulerFactoryBean.getScheduler().deleteJob(jobKey);
    } catch (SchedulerException e) {
        e.printStackTrace();
    }

方法二:

    //通過triggerName獲取TriggerKey
    TriggerKey aaatrigger = TriggerKey.triggerKey("aaatrigger");
    try {
        schedulerFactoryBean.getScheduler().unscheduleJob(aaatrigger);
    } catch (SchedulerException e) {
        e.printStackTrace();
    }

注:此處刪除job會根據(jù)jobkey或TriggerKey刪除job及對應(yīng)的trigger

另外會存在一種情況,再暫停一段時間后,恢復(fù)定時會將暫停期間未執(zhí)行的定時執(zhí)行一遍,這個和創(chuàng)建定時的時候Trigger的CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING屬性有關(guān)系,如果設(shè)置的是misfire的定時立刻執(zhí)行的話就會在恢復(fù)定時的時候馬上執(zhí)行,如果是放棄執(zhí)行的話就會在恢復(fù)定時的時候執(zhí)行下一個時間的定時。

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

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

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