亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • SimpleTrigger的作用:在指定時間執行且僅執行一次任務,或者是在指定時間間隔內多次執行任務。

    舉例1:當前時間4秒后,執行定時任務并僅執行一次。

    http://img1.sycdn.imooc.com//5e102cd30001c23d09260392.jpg

    http://img1.sycdn.imooc.com//5e102ce0000171e512220647.jpg

    http://img1.sycdn.imooc.com//5e102ceb0001233307880201.jpg

    舉例2:每隔2秒鐘執行一次定時任務,通過withRepeatCount方法實現重復執行定時任務,如果withRepeatCount參數是整數,代表第一次執行之后執行定時任務的次數,如圖。

    http://img1.sycdn.imooc.com//5e102e9a0001763c08610374.jpg

    http://img1.sycdn.imooc.com//5e102eb00001252110750687.jpg

    http://img1.sycdn.imooc.com//5e10303f0001462408120313.jpg

    注意:endAt方法優先級大于withRepeatCount方法優先級,即使次數還沒執行完,到指定時間也會結束。

    http://img1.sycdn.imooc.com//5e1030b4000119d909560587.jpg

    查看全部
    0 采集 收起 來源:SimpleTrigger

    2020-01-04

  • Trigger定義:Quartz的觸發器,用來定義調度程序任務執行的時間,也就是觸發執行Job的時間。

    Quartz框架中的Trigger架構:如圖。

    1、Trigger是Builder設計模式創建的。

    2、Trigger實現類很多,這里常用CronTriggerImpl和SimpleTriggerImpl這兩個Trigger實現類。

    http://img1.sycdn.imooc.com//5e101afb0001976011190629.jpg

    觸發器通用屬性(所有實現類擁有的屬性)

    JobKey:Job實例的標識,觸發器觸發調度工具時,該Job對應的相應任務就會執行(通過JobKey可以獲取和Trigger綁定的JobDetail的一些信息)。

    StartTime:觸發器的時間表,首次被觸發的時間,類型為Java.uitl.Date(可以在調度器中存儲一個觸發器,當時間到了觸發的時間調度器就會調用Job的相應任務)。

    EndTime:觸發器不再被觸發的時間,它的類型為Java.uitl.Date,超過這個時間,觸發器就會執行了。

    舉例:如圖,演示startTime、endTime、JobKey的使用。

    1、通過Date獲取3秒后的時間。

    2、觸發器執行指定觸發時間的方法(startAt()、endAt())

    3、通過Trigger獲取JobKey,并且通過jobKey獲取與Trigger綁定的Job的JobDetail的相關信息。

    4、通過Trigger獲取startTime和endTime的信息。

    http://img1.sycdn.imooc.com//5e1027e80001639e15120496.jpg

    http://img1.sycdn.imooc.com//5e1027f40001513612150794.jpg

    http://img1.sycdn.imooc.com//5e1028080001c11309650320.jpg


    查看全部
    0 采集 收起 來源:淺談Trigger

    2020-01-04

  • 舉例:如圖。

    知識點1:可以通過getMergedJobDataMap()獲取JobDetail和Trigger合并的JobDataMap。但這里需要注意一點是如果Trigger和JobDetail的key相同,那么Trigger會覆蓋JobDetail。

    http://img1.sycdn.imooc.com//5e09fc6b0001ad6e10000912.jpghttp://img1.sycdn.imooc.com//5e09fc750001434509720894.jpg

    第二種獲取傳入JobExecuteContext的參數:更直接,更簡潔。通過setter方法直接對Job里對應key值的成員變量賦值。

    http://img1.sycdn.imooc.com//5e0a008b00012ebd09620280.jpg

    舉例:如圖。

    知識點1:通過在實現Job接口的實現類中,定義成員變量并提供setter方法,前提成員變量的類型要和傳入的value值類型相同,名稱要和key的名稱相同。該種方式就可以不使用JobDataMap了。

    http://img1.sycdn.imooc.com//5e0a026e0001ca1d09570912.jpg

    http://img1.sycdn.imooc.com//5e0a02830001daa410210892.jpg

    查看全部
  • JobExecutionContext:它是位于Job接口的execute方法的參數位置。由于每個業務邏輯Job實例需要的參數不同,Quartz沒辦法提供帶有參數的構造函數。去給Job實例初始化參數。因此Quartz在每次執行Job時,都需要重新創建一個Job實例。并通過newInstance的反射機制調用無參構造函數,依據Job實現類的描述來實例化Job。所以想進行傳參就需要使用JobExecutionContext。(類似于Servlet訪問ServletContext那樣)通過JobExecutionContext,Job可以訪問到所處環境的所有信息(包括注射到Scheduler上與該Job相關的JobDetail和Trigger)。

    http://img1.sycdn.imooc.com//5e09ee340001759f09940580.jpg

    JobDataMap:它支持鍵值對的形式,將自定義參數傳入JobDataMap。

    http://img1.sycdn.imooc.com//5e09ee940001363509860589.jpg


    獲取JobDataMap:

    舉例:如圖。

    知識點1:通過在創建JobDetail或者Trigger時,通過usingJobData(參數1,參數2)為JobExecuteContext參數傳入參數,如果傳入多個參數,可以通過定義多個usingJobData方法。

    知識點2:可以通過JobKey或者TriggerKey實例的getName或者getGroup方法獲取JobDetail或者Trigger的唯一標識和組。而JobKey或者TriggerKey是通過JobExecuteContext參數的getJobDetail.getKey()或者getTriiger().getKey()方法獲取的。

    知識點3:可以通過JobDataMap獲取傳入的參數,也就是通過傳入的key獲取value,而JobDataMap是通過JobExecuteContext實例的getJobDetail.getJobDataMap或者getTrigger.getJobDataMap獲取的。之后就可以通過JobDataMap實例的getKey("key")獲取值。

    http://img1.sycdn.imooc.com//5e09f65500013ae811000922.jpg

    http://img1.sycdn.imooc.com//5e09f66d000171b610220937.jpg

    查看全部
  • Job接口:實現業務邏輯的任務接口,實現該接口需要實現execute方法,該方法類似于TimerTask的run方法。JobExecutionContext參數是Job執行的上下文,其中在該參數中有一個JobDataMap,它包含了輸入的參數。

    注意:execute方法聲明拋出了一個異常,如果任務執行失敗,我們可以通過捕獲該異常來處理。避免了Timer的全崩式失敗。

    http://img1.sycdn.imooc.com//5e085d12000142d509230335.jpg

    Job在Quartz的生命周期:每次Scheduler執行Job時,它在調用execute方法前會根據JobDetail提供的類型創建一個Job實例。當該任務執行完畢后,會丟棄該Job實例,并且釋放的實例會被垃圾回收機制回收。

    JobDetail接口:JobDetail為Job實例提供了許多設置屬性,以及JobDataMap成員變量屬性,它用來存儲特定Job實例的狀態信息,Scheduler需要借助JobDetail對象來添加Job實例。

    Job的重要屬性:

    name:任務的名稱,它在JobDetail中是必須項。

    group:任務所在組,默認值是大寫的DEFAULT,它也是必須項。

    jobClass:JobDetail傳入任務的類類型,它也是必須項。

    jobDataMap:它用來傳參的作用。

    http://img1.sycdn.imooc.com//5e08616a00019ae510360909.jpg

    使用場景:例如,輸出日志,輸出執行的任務所在路徑就可以通過getClass()。

    查看全部
    1 采集 收起 來源:淺談Job&JobDetail

    2019-12-29

  • 舉例:任務每隔兩秒鐘打印一次Hello World。

    首先,需要到maven中央倉庫復制坐標到pom文件中,如圖。

    http://img1.sycdn.imooc.com//5e083d320001270f09910629.jpg

    ——總結——

    http://img1.sycdn.imooc.com//5e08546d00013c2010140610.jpg

    http://img1.sycdn.imooc.com//5e0859de00014b9b11140912.jpg

    JobDetail:

    通過它可以獲取Job執行時的一些信息。JobDetail它是通過Builder設計模式創建的。

    Trigger:

    通過它可以觸發Job何時執行。它也是通過Builder設計模式創建的。立即執行是通過startNow方法。時間間隔通過withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2)。重復執行repeatForever()。

    Scheduler:它是通過Factory設計模式創建的。

    查看全部
  • Quartz簡介:OpenSymphony提供的強大的開源任務調度框架(官網:http://www.quartz-scheduler.org/),它是基于Java實現的。

    http://img1.sycdn.imooc.com//5e08157b00017a3f10830431.jpg

    Quartz特點:

    1、強大的調度任務框架,Spring默認的調度框架,容易與Spring集成,實現靈活、可配置的調度功能。

    2、提供了調度運行環境的持久化機制,可以保存并恢復調度現場,即使系統因故障關閉,任務調度現場數據并不會丟失(Timer就不能做到這一點,一旦失敗,接下來的任務就都不能執行了,并且一切的執行信息都會丟失)。

    3、允許靈活的定義調用觸發器的時間表,并可以對觸發器和任務進行關聯映射,它提供了主鍵式的監聽器和各種插件,線程池的功能,支持任務和調度的多種組合方式,支持調度數據的多種存儲方式。

    4、分布式和存儲能力。

    Quartz用到的設計模式:

    1、Builder模式:例如Job、Trigger,它們都是通過Builder創建的。

    2、Factory模式:例如調度器是通過它創建的。

    3、組建模式:可以讓每一個組件可以插拔,并且組件之間的耦合度是很低的,易于擴展,可以自行定義一些組件。

    4、鏈式寫法

    Quartz的核心概念:

    1、調度器:定期定時定頻率的調度執行任務。

    2、任務:業務邏輯。

    3、觸發器:讓行為生效的時間。

    Quartz的體系結構:

    1、JobDetail:任務的實現細節。

    2、Trigger:觸發器,決定任務什么時候被調用,它又分為SimpleTrigger、CronTrigger,SimpleTrigger它類似于Timer,實現時間上的一些操作。CronTrigger實現較為復雜的業務邏輯,例如每周三執行任務。

    3、scheduler:調度器,定時定頻率調用定時任務JobDetail,并且通過它將JobDetail和Trigger綁定在一起。

    Quartz的重要組成:

    1、Job:區別于JobDetail,它是一個接口,并且只有一個方法,可以通過實現該接口,實現定時任務,它就相當于TimerTask的run方法,只不過是該方法有一個參數。


    查看全部
    0 采集 收起 來源:初識Quartz

    2019-12-29

  • http://img1.sycdn.imooc.com//5ded0c5f0001e95912410710.jpg

    Scheduler


    查看全部
    0 采集 收起 來源:淺談Scheduler

    2019-12-08

  • Cron表達式及案例<br/><p><img src="http://img1.sycdn.imooc.com//5ded090f0001429105000280.jpg" alt="http://img1.sycdn.imooc.com//5ded090f0001429111900666.jpg"/></p><p><img src="http://img1.sycdn.imooc.com//5ded090f0001a42105000284.jpg" alt="http://img1.sycdn.imooc.com//5ded090f0001a42111930676.jpg"/></p>
    查看全部
    0 采集 收起 來源:CronTrigger

    2020-09-11

  • 通配符說明<br/><p ><img src="http://img1.sycdn.imooc.com//5ded08670001e71305000243.jpg" alt="http://img1.sycdn.imooc.com//5ded08670001e71312510607.jpg"/></p>
    查看全部
    1 采集 收起 來源:CronTrigger

    2020-09-11

  • Job的定義:實現業務邏輯的任務接口。

    淺談Job:Job接口非常容易實現,只有一個execute方法,類似TimerTask的run方法,在里面編寫業務邏輯。

    ?package org.quartz;

    public interface? Job{

    ????public void execute(JobExecutionContext context)throws?????

    ?????JobExecutionException;

    }

    Job實例在Quartz中的生命周期

    ????每次調度器執行job時,它在調用execute方法錢會創建一個新的job實例。

    ????當調用完成后,關聯的job對象實例會被釋放,釋放的實例會被垃圾回收機制回收。

    淺談JobDetail

    ????JobDetail為Job實例提供了許多設置屬性,以及JobDataMap成員變量屬性,它用來存儲特定Job實例的狀態信息,調度器需要借助JobDetail對象來添加Job實例。

    查看全部
    0 采集 收起 來源:淺談Job&JobDetail

    2019-12-08

  • Quartz體系機構:


    查看全部
    0 采集 收起 來源:初識Quartz

    2019-11-20

  • 鏈式寫法
    查看全部
    0 采集 收起 來源:淺談Job&JobDetail

    2019-09-21

  • 定時任務工具所需

    調度器scheduler? 老板

    觸發器trigger? ? 下班

    任務jobDetail? ? 發工資

    總結:下班老板發工資

    查看全部
  • 特點:強大的調度功能,靈活的應用方式 ,分布式和集群能力http://img1.sycdn.imooc.com//5d6f9e7d0001319712050683.jpg

    查看全部
    0 采集 收起 來源:初識Quartz

    2019-09-04

舉報

0/150
提交
取消
課程須知
建議先學習本課程的前置課程Timer篇: http://www.xianlaiwan.cn/learn/841
老師告訴你能學到什么?
什么是Quartz,Quartz如何用,如何與Spring合為一體

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!