国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Quartz學(xué)習(xí)之常用Trigger方法記錄

vibiu / 2552人閱讀

摘要:分類中共包含有種觸發(fā)器。建立一個(gè)觸發(fā)器,每隔一分鐘,每天上午點(diǎn)至下午點(diǎn)之間建立一個(gè)觸發(fā)器,將在每天上午執(zhí)行第一種實(shí)現(xiàn)方式第二種實(shí)現(xiàn)方式建立一個(gè)觸發(fā)器,將在星期三上午在系統(tǒng)默認(rèn)值之外執(zhí)行第一種方式第二種方式

Trigger分類

Quartz中共包含有4種觸發(fā)器。

常用的是: SimpleTriggerCronTrigger。
不常用的是:CalendarIntervalTriggerDailyTimeIntervalTrigger。雖然后面兩種用到的不是特別多,但是在特定的場景下,也是有不可替代的作用(具體看下官方文檔)。

CalendarIntervalTrigger: 根據(jù)一個(gè)給定的日歷時(shí)間進(jìn)行重復(fù),可以設(shè)置啟動(dòng)時(shí)間。它可以完成 SimpleTrigger(比如每個(gè)月,因?yàn)樵虏皇且粋€(gè)確定的秒數(shù))和CronTrigger(比如5個(gè)月,因?yàn)?個(gè)月并不是12個(gè)月的公約數(shù))不能完成的一些任務(wù)。注意,使用month作為周期單位時(shí),如果起始日期是在某月的最后一天,比如1月31日,那么下一個(gè)激活日在2月28日,以后所有的激活日都在當(dāng)月的28日。如果你要嚴(yán)格限制在每月的最后一天激活,那你需要使用cronTrigger。不受夏令時(shí)引起的時(shí)鐘偏移影響。

DailyTimeIntervalTrigger:在給定的時(shí)間窗口或指定的星期以秒、分鐘、小時(shí)為周期進(jìn)行重復(fù)。比如,每天早上8:00到11:00之間,每隔72分鐘激活;或者每周的周一到周五9:20到16:47之間,每隔23分鐘激活。

SimpleTrigger 常用的方法記錄

SimpleTrigger的屬性包括:開始時(shí)間、結(jié)束時(shí)間、重復(fù)次數(shù)以及重復(fù)的間隔。

重復(fù)次數(shù),可以是0、正整數(shù),以及常量SimpleTrigger.REPEAT_INDEFINITELY。重復(fù)的間隔,必須是0,或者long型的正數(shù),表示毫秒。注意,如果重復(fù)間隔為0,trigger將會(huì)以重復(fù)次數(shù)并發(fā)執(zhí)行(或者以scheduler可以處理的近似并發(fā)數(shù))。

指定時(shí)間開始觸發(fā),不重復(fù)

SimpleTrigger trigger = (SimpleTrigger) newTrigger() 
        .withIdentity("trigger1", "group1")
        .startAt(myStartTime)                     // some Date 
        .forJob("job1", "group1")                 // identify job with name, group strings
        .build();

指定時(shí)間觸發(fā),每隔10秒執(zhí)行一次,重復(fù)10次

trigger = newTrigger()
        .withIdentity("trigger3", "group1")
        .startAt(myTimeToStartFiring)  // if a start time is not given (if this line were omitted), "now" is implied
        .withSchedule(simpleSchedule()
            .withIntervalInSeconds(10)
            .withRepeatCount(10)) // note that 10 repeats will give a total of 11 firings
        .forJob(myJob) // identify job with handle to its JobDetail itself                   
        .build();

立即觸發(fā),每個(gè)5分鐘執(zhí)行一次,直到22:00:

trigger = newTrigger()
        .withIdentity("trigger7", "group1")
        .withSchedule(simpleSchedule()
            .withIntervalInMinutes(5)
            .repeatForever())
        .endAt(dateOf(22, 0, 0))
        .build();

建立一個(gè)觸發(fā)器,將在下一個(gè)小時(shí)的整點(diǎn)觸發(fā),然后每2小時(shí)重復(fù)一次:

trigger = newTrigger()
        .withIdentity("trigger8") // because group is not specified, "trigger8" will be in the default group
        .startAt(evenHourDate(null)) // get the next even-hour (minutes and seconds zero ("00:00"))
        .withSchedule(simpleSchedule()
            .withIntervalInHours(2)
            .repeatForever())
        // note that in this example, "forJob(..)" is not called which is valid 
        // if the trigger is passed to the scheduler along with the job  
        .build();

    scheduler.scheduleJob(trigger, job);

建立一個(gè)觸發(fā)器,將在下一個(gè)小時(shí)的整點(diǎn)觸發(fā),然后每2小時(shí)重復(fù)一次

    trigger = newTrigger()
        .withIdentity("trigger8") // because group is not specified, "trigger8" will be in the default group
        .startAt(evenHourDate(null)) // get the next even-hour (minutes and seconds zero ("00:00"))
        .withSchedule(simpleSchedule()
            .withIntervalInHours(2)
            .repeatForever())
        // note that in this example, "forJob(..)" is not called which is valid 
        // if the trigger is passed to the scheduler along with the job  
        .build();

    scheduler.scheduleJob(trigger, job);
CronTrigger 常用的方法記錄

CronTrigger 通常比 Simple Trigger 更有用,如果需要基于日歷的概念而不是按照 SimpleTrigger 的精確指定間隔進(jìn)行重新啟動(dòng)的作業(yè)啟動(dòng)計(jì)劃。

使用 CronTrigger ,可以指定號時(shí)間表,例如“每周五中午”或“每個(gè)工作日和上午9:30”,甚至“每周一至周五上午9:00至10點(diǎn)之間每5分鐘”和1月份的星期五“。

即使如此,和 SimpleTrigger 一樣,CronTrigger 有一個(gè) startTime ,它指定何時(shí)生效,以及一個(gè)(可選的)endTime,用于指定何時(shí)停止計(jì)劃。

建立一個(gè)觸發(fā)器,每隔一分鐘,每天上午8點(diǎn)至下午5點(diǎn)之間

trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .withSchedule(cronSchedule("0 0/2 8-17 * * ?"))
    .forJob("myJob", "group1")
    .build();

建立一個(gè)觸發(fā)器,將在每天上午10:42執(zhí)行

// 第一種實(shí)現(xiàn)方式
trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .withSchedule(dailyAtHourAndMinute(10, 42))
    .forJob(myJobKey)
    .build();
    
// 第二種實(shí)現(xiàn)方式
trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .withSchedule(cronSchedule("0 42 10 * * ?"))
    .forJob(myJobKey)
    .build();

建立一個(gè)觸發(fā)器,將在星期三上午10:42在TimeZone(系統(tǒng)默認(rèn)值)之外執(zhí)行

// 第一種方式
trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .withSchedule(weeklyOnDayAndHourAndMinute(DateBuilder.WEDNESDAY, 10, 42))
    .forJob(myJobKey)
    .inTimeZone(TimeZone.getTimeZone("America/Los_Angeles"))
    .build();
    
// 第二種方式
  trigger = newTrigger()
    .withIdentity("trigger3", "group1")
    .withSchedule(cronSchedule("0 42 10 ? * WED"))
    .inTimeZone(TimeZone.getTimeZone("America/Los_Angeles"))
    .forJob(myJobKey)
    .build();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71209.html

相關(guān)文章

  • Quartz學(xué)習(xí)之入門學(xué)習(xí)

    摘要:觸發(fā)器也可以給予名稱和放置在組中,以方便地將它們調(diào)度內(nèi)組織。作業(yè)可以被添加到所述調(diào)度器一次,而是具有多個(gè)觸發(fā)器注冊。調(diào)度類鏈接工作和觸發(fā)器到一起,并執(zhí)行它。 簡介 Quartz是一個(gè)開源的作業(yè)調(diào)度框架,可以讓計(jì)劃的程序任務(wù)一個(gè)預(yù)定義的日期和時(shí)間運(yùn)行。Quartz可以用來創(chuàng)建簡單或復(fù)雜的日程安排執(zhí)行幾十,幾百,甚至是十萬的作業(yè)數(shù)。官方鏈接,戳這里 Quartz是什么? 作業(yè)調(diào)度庫 Qua...

    Pandaaa 評論0 收藏0
  • Quartz學(xué)習(xí)之多作業(yè)、監(jiān)聽

    摘要:多作業(yè)例子在這個(gè)例子中,我們將介紹如何通過多個(gè)作業(yè)。在調(diào)度框架中,每個(gè)作業(yè)將被連接到一個(gè)唯一的觸發(fā),并且由調(diào)度器運(yùn)行它。備注說明在中,一個(gè)觸發(fā)器觸發(fā)多個(gè)作業(yè)是不可以的。第一步創(chuàng)建個(gè)作業(yè),,和。 多作業(yè)例子 在這個(gè)例子中,我們將介紹如何通過Quartz API 多個(gè)作業(yè)。在Quartz調(diào)度框架中,每個(gè)作業(yè)將被連接到一個(gè)唯一的觸發(fā),并且由調(diào)度器運(yùn)行它。 備注說明:在 Quartz 中,一個(gè)...

    miracledan 評論0 收藏0
  • Quartz學(xué)習(xí)之Cron Expressions表達(dá)式

    摘要:請注意,觸發(fā)器將不會(huì)在上午點(diǎn)開始,僅在,,和請注意,一些調(diào)度要求太復(fù)雜,無法用單一觸發(fā)表示例如每上午至之間每分鐘,下午至晚上點(diǎn)之間每分鐘一次。在這種情況下的解決方案是簡單地創(chuàng)建兩個(gè)觸發(fā)器,并注冊它們來運(yùn)行相同的作業(yè)。 表達(dá)式說明 Cron-Expressions 用于配置 CronTrigger的實(shí)例。Cron Expressions 是由七個(gè)子表達(dá)式組成的字符串,用于描述日程表的各個(gè)...

    Mr_zhang 評論0 收藏0
  • 慕課網(wǎng)_《Java定時(shí)任務(wù)調(diào)度工具詳解之Quartz篇》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期一說明本文部分內(nèi)容均來自慕課網(wǎng)。屬性任務(wù)名稱任務(wù)所屬組任務(wù)實(shí)現(xiàn)類傳參的作用淺談上是什么當(dāng)調(diào)用一個(gè),就會(huì)將傳遞給的方法能通過對象訪問到運(yùn)行時(shí)候的環(huán)境以及本身的明細(xì)數(shù)據(jù)。 時(shí)間:2017年06月26日星期一說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼...

    hiYoHoo 評論0 收藏0
  • Quartz實(shí)現(xiàn)工作流

    摘要:也有,觸發(fā)點(diǎn)和相關(guān),和我們的需求關(guān)系不大,暫忽略。實(shí)現(xiàn)為每個(gè)算法任務(wù)創(chuàng)建一個(gè),任務(wù)失敗不能啟動(dòng)后續(xù)任務(wù),所以在運(yùn)行失敗的情況下,需要把啟動(dòng)的刪除掉。需要自己在中實(shí)現(xiàn)多個(gè)依賴是否完成的檢查。后續(xù)主線程的任務(wù)就是檢查工作流是否已經(jīng)完成。 Quartz簡介 作為一個(gè)優(yōu)秀的開源調(diào)度框架,Quartz 具有以下特點(diǎn):強(qiáng)大的調(diào)度功能,支持立即調(diào)度、定時(shí)調(diào)度、周期調(diào)度、并發(fā)調(diào)度; 靈活的應(yīng)用方式,支...

    Apollo 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<