Quartz之手動啟動和關(guān)閉定時器簡單示例

開心一笑

考路考那天,上午有個駕校帶來的15個人全軍覆沒了,原因是有個女孩子很緊張,
路考車上,監(jiān)考教官看她一直發(fā)抖,心生憐憫安慰她:“小姑娘,你別怕,我又不吃人。
”這女孩子轉(zhuǎn)過頭笑著說:“沒事,我不怕,早上教練跟我說了,考官沒啥好怕的,
你就當(dāng)一條狗拴在副駕上?!庇谑?,該駕校團(tuán)滅!?。?/p>

提出問題

Quartz如何實(shí)現(xiàn)定時器的手動啟動和手動關(guān)閉,來提高系統(tǒng)性能???

解決問題

定義一個AyTestJob任務(wù)類,繼承QuartzJobBean

package com.evada.de.projcommand.service.impl;
import org.quartz.*;
import org.springframework.scheduling.quartz.QuartzJobBean;

/**
 *測試任務(wù)類
 * Created by Ay on 2016/5/7.
 */
public class AyTestJob extends QuartzJobBean{

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //jobExecutionContext可以獲得你想要的關(guān)于這個定時器的一切
        JobDetail jobDetail = jobExecutionContext.getJobDetail();
        Scheduler scheduler = jobExecutionContext.getScheduler();
        Trigger trigger = jobExecutionContext.getTrigger();
        System.out.println(jobDetail.getClass().getName());
        System.out.println("在這里處理項(xiàng)目的任務(wù)邏輯......");
    }
}

寫個測試方法test(),名字有點(diǎn)俗,但管用,解釋下

public void test(){
        try {

            Scheduler scheduler = schedulerFactory.getScheduler();

            //判斷是否有AyTestJob類,有代表任務(wù)類在執(zhí)行任務(wù),定時器已經(jīng)啟動了,停止它
            if(scheduler.getJobDetail(new JobKey("AyTestJob")) != null){
                //定時器關(guān)閉
                scheduler.deleteJob(new JobKey("AyTestJob"));
                System.out.println("定時器已經(jīng)關(guān)閉了!?。?);
            //沒有的話,說明定時器沒有啟動,啟動它
            }else{
                //獲得定義的AyTestJob
                JobDetail myJobDetail = new JobDetailImpl("AyTestJob",Scheduler.DEFAULT_GROUP,AyTestJob.class);
                //定義出發(fā)器,每10秒觸發(fā)一次
                Trigger myTrigger = new CronTriggerImpl("AyTestTrigger",
                        Scheduler.DEFAULT_GROUP, "0/10 * * * * ?");
                //設(shè)置Job任務(wù)類和觸發(fā)器
                scheduler.scheduleJob(myJobDetail, myTrigger);
                //啟動定時器,大功告成?。?!
                scheduler.start();
                System.out.println("每隔10秒的定時器已經(jīng)啟動了........");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

控制臺打印信息如下:

org.quartz.impl.JobDetailImpl
在這里處理項(xiàng)目的任務(wù)邏輯......
org.quartz.impl.JobDetailImpl
在這里處理項(xiàng)目的任務(wù)邏輯......
org.quartz.impl.JobDetailImpl
在這里處理項(xiàng)目的任務(wù)邏輯......

具體定時器如何和項(xiàng)目業(yè)務(wù)結(jié)合,得根據(jù)項(xiàng)目需要,這只是一個簡單的示例而已!!!

大功告成?。。?/p>

14.png

讀書感悟

來自《初戀這件小事》

  • 讓自己努力的那個人,就像自己生命的靈魂,讓我們了解愛的積極意義。
  • 現(xiàn)實(shí)永遠(yuǎn)不及電影來的那么完美。很多時候,相愛的人不能一起走到最后。
  • 暗戀是件小事,初戀是件小事,這件小事的名字叫青春
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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