1. 程式人生 > >Tirgger SimpleTrigger CronTrigger(四)

Tirgger SimpleTrigger CronTrigger(四)

  觸發器通用屬性:

    jobKey:表示job例項的標識,觸發器被觸發時,指定的job例項會被執行。

    startTime:表示觸發器的時間表 首次被觸發的時間,他的值型別為java.uti.Date。

    endTime:指定的觸發器不在被執行的時間,他的值型別為java.uti.Date。

實現:

package quartz;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.SimpleScheduleBuilder; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class SchedulerClass { public
static void main(String[] args) throws SchedulerException { Date startDate = new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("當前時間:"+sf.format(startDate)); // 建立一個JobDetail例項 // 將該例項與JobClass繫結,JobDetail是由Builder模式來建立的,JobDetail是來繫結job的。
// withIdentity 建立唯一的標識 JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("jobName", "group").build(); /*獲取當前三秒後的時間*/ startDate.setTime(startDate.getTime()+3000); /*獲取當前六秒後的時間*/ Date endDate = new Date(); endDate.setTime(endDate.getTime()+6000); // 建立一個Tigger例項,定義 job立即執行,並每隔一段時間重複執行,每隔5秒中執行一次 Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startAt(startDate).endAt(endDate) .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build(); // 建立一個Scheduler例項, Scheduler是由工廠模式來建立的 so SchedulerFactory factory = new StdSchedulerFactory(); Scheduler scheduler = factory.getScheduler(); scheduler.start(); // 排程器呼叫任務和觸發器,scheduler將job,trigger繫結在一起。 scheduler.scheduleJob(jobDetail, trigger); } }
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;
import org.quartz.Trigger;

public class JobClass implements Job {
    

    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        
        
          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");
          JobKey jobKey=arg0.getJobDetail().getKey();
          Trigger triiger=arg0.getTrigger();
          System.out.println("開始時間"+sf.format(triiger.getStartTime()));
          System.out.println("結束時間"+sf.format(triiger.getEndTime()));
          System.out.println("例項名稱:"+jobKey.getName());
        
        

    }

}

執行結果為:

  SimpleTrigger

  作用:在指定的時間段內執行一次作業任務  或是 在指定的時間間隔內執行多次作業任務 (定時定頻率)

       // 定時 當前時間3秒後執行
        startDate.setTime(startDate.getTime() + 3000);
        // Trigger trigger =TriggerBuilder.newTrigger().withIdentity("trigger").startAt(startDate).build();
        // 定頻率 每隔3秒中執行一次,執行2次
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).withRepeatCount(2)).build();

注意:

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

  endTime屬性的值會覆蓋設定重複次數的屬性值;比如,你可以建立一個trigger,在終止時間之前每隔10秒執行一次,你不需要去計算在開始時間和終止時間之間的重複次數,只需要設定終止時間並將重複次數設定為REPEAT_INDEFINITELY(當然,你也可以將重複次數設定為一個很大的值,並保證該值比trigger在終止時間之前實際觸發的次數要大即可)。

 CronTrigger:基於日曆的作業排程器。

 Cron表示式:

  用於配置CronTrigger例項。由7個子表示式組成的字串,描述時間表的詳細資訊,格式:秒 分 時 日 月 周 年

Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger")
                .withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ? *")).build();

 

 萬用字元說明

 實在是不知道怎麼寫  網上搜搜 cron線上生成表示式。

相關推薦

Tirgger SimpleTrigger CronTrigger

  觸發器通用屬性:     jobKey:表示job例項的標識,觸發器被觸發時,指定的job例項會被執行。     startTime:表示觸發器的時間表 首次被觸發的時間,他的值型別為java.uti.Date。     endTime:指定的觸發器不在被執行的時間,他的值型別為java.uti

Python 接口測試

數列 格式 dumps code 輸出 pre weather 標準 lang 五:python數列化和反序列化 把python的對象編碼轉換為json格式的字符串,反序列化可以理解為:把json格式 字符串解碼為python數據對象。在python的標準庫中,專門提供了j

python學習之路

[1] size class dex epc uri msu 語句 這就是 繼續昨天的學習,學到了數組。 首先有兩個數組,name1和name2.我們可以將兩個數組合並 name1=[1,2,3,4] name2=[5,6,7,8] names=name1.extend(

JAVA實現EXCEL公式專題——字符串函數

main 問題 int start boolean java ... ringbuf out substring 直接上代碼:/** * 項目名稱: * 文件說明: ExCEL公式類型:字符串公式 * 主要特點: * 版本:1.0 * 制作人:劉晨曦

ios多線程操作—— GCD核心概念

indent img 操作 fort 16px 2.0 b2c 有一種 read GCD全稱Grand Central Dispatch。可譯為“大派發中樞調度器”,以純C語言寫成,提供了很多很強大的函數。GCD是蘋果公司為多核的並行運算提出的解決方式,它能夠自己主

軟考

size mod 但是 ima details 表現 tar type 對象 http://blog.csdn.net/lihepeng007/article/details/49716551 【UML】三種事物 四種關系 九種圖 標簽: uml生命周期 2015-

Cocos2d-x學習筆記 布景層的加入移除

dcl from position 顏色 顯示地圖 idt col 分享 學習 布景層類也就是CCLayer類,每一個遊戲場景中都能夠有非常多層,每一層負責各自的任務。顯示地圖、顯示人物等。同一時候層還是一個容器,能夠放入文本、圖片和菜單。構成遊戲中一個個UI。這次

C#基礎知識-流程控制的應用

相關 ats 循環 nbsp 使用 logs 嘗試 exc 設置斷點 流程控制我們在編程中運用到的地方非常的多,在上篇中僅僅只是簡單的介紹每一種的使用,並沒有運用到實例中,很難去理解它真正的作用。下面我們將實際的運用流程控制的代碼寫一些實例相關的程序,加深對流程控制的理解,

性能測試應用領域

架構 關心 剖析 測試結果 可擴展 服務 style 快速 折線圖 大概說說性能測試的五種應用領域吧,可能純文字內容太多,沒耐心的話,可以跳過不看。。。 ————參考書籍《軟件性能測試過程詳解與案例剖析》 概括來說,可以將性能測試的應用領域劃分為下面五個不同領域:

機器學習筆記機器學習可行性分析

資料 表示 image 隨機 訓練樣本 -s mage 例如 lin 從大量數據中抽取出一些樣本,例如,從大量彈珠中隨機抽取出一些樣本,總的樣本中橘色彈珠的比例為,抽取出的樣本中橘色彈珠的比例為,這兩個比例的值相差很大的幾率很小,數學公式表示為: 用抽取到的樣本作為訓練

物聯網平臺構架系列 :Amazon, Microsoft, IBM IoT 平臺導論 之 平臺

物聯網; iot; aws; 亞馬遜; greengrass;microsoft; azure;ibm; watson; bluemix最近研究了一些物聯網平臺技術資料,以做選型參考。腦子裏積累大量信息,便想寫出來做一些普及。作為科普文章,力爭通俗易懂,不確保概念嚴謹性。我會給考據癖者提供相關英文鏈接,以便深

java線程

讀寫 img 其他 手動 dem com 字段 只讀 停止線程 java5線程並發庫   線程並發庫是JDK 1.5版本級以上才有的針對線程並發編程提供的一些常用工具類,這些類被封裝在java.concurrent包下。   該包下又有兩個子包,分別是atomic和lock

Python基礎學習

python 函數 集合 Python 集合: set 顧明思義,就是個集合,集合的元素是唯一的,無序的。一個{ }裏面放一些元素就構成了一個集合,set裏面可以是多種數據類型(但不能是列表,集合,字典,可以是元組) 它可以對列表裏面的重復元素進行去重list1 = [1,2,3,23

網站平臺架構演變史 - 水平拆分的查詢

頻率 條件查詢 期待 數量 平臺 演變 關聯查詢 如果 條件 之前在講表拆分的時候氛圍垂直拆分和水平拆分 垂直拆分的查詢其實不難,就是從單表變為了多表,而大部分情況下只是對主表的查詢多,從表的查詢會很少用到,這樣的情況下關聯查詢不需要太多的考慮 水平拆分之前講了大數據量的情

搭建高可用mongodb集群—— 分片

tor cat address pad 業務 [] 日誌信息 ast mongo 搭建高可用mongodb集群(四)—— 分片 按照上一節中《搭建高可用mongodb集群(三)—— 深入副本集》搭建後還有兩個問題沒有解決: 從節點每個上面的數據都是對數據庫全量拷貝,

jdk源碼閱讀筆記之java集合框架LinkedList

ray private array public 源碼閱讀 jdk源碼閱讀 oid color 解釋 關於LinkedList的分析,會從且僅從其添加(add)方法入手。 因為上一篇已經分析過ArrayList,相似的地方就不再敘述,關註點在LinkedList的特點。 屬

爬蟲庫之BeautifulSoup學習

所有 字符串 判斷 href gin int 過濾器 amp link 探索文檔樹: find_all(name,attrs,recursive,text,**kwargs) 方法搜索當前tag的所有tag子節點,並判斷是否符合過濾器的條件 1、name參數,可

WEB安全實戰關於 Cookie

round url 主動 gin 加密 文章 日期 就會 dex 前言 這幾天中,一直再跟漏洞打交道,而在這些漏洞中,出現的最多的就是 Cookie 和 Session 了。這篇文章就簡單的介紹一些 Cookie 中最經常使用的四個屬性。也算是為興許的文章做一個

nyoj 1078 漢諾塔[二分圖 || 規律 || 暴力 || 貪心]

二分圖 二分圖匹配 int 處理 names 特殊 mes while 最小路徑覆蓋 題目:nyoj 1078 漢諾塔(四) 分析:做這個題目的時候是在圖論的題目裏面看到的。到時讀了題目推了一下,發現好像有點規律。試了一下果然過了。 後來看了一下數據,才50。那

MVC框架驅動類 - 工廠模式

同時 exist class ... string obj 所有 獲取對象 ret 將框架中大部分要創建的對象,都經由驅動類創建,獲取,判斷。這樣做有如下好處: 1 統一管理所有創建的類,包括創建前處理與創建後處理 2 單一創建,防止多次創建類 實例: <?php