整合任務排程服務

2021-08-25 06:28:59 字數 2339 閱讀 3468

jdk中任務排程核心是timer類的schedule方法,傳遞乙個繼承timertask實現了run方法的類。

在spring的xml檔案中配置

[b]使用quartz排程任務[/b]

quartz中的幾個概念

job:定義乙個任務,job只管執行,不管什麼時間執行,不管執行多少次

trigger:定義乙個出發器,表示何時觸發乙個job執行,乙個job可以和多個trigger關聯

scheduler:真正排程任務的排程器,通過scheduler(job, trigger)方法把關聯了tragger的job放入排程器中執行

public class ******quartz 

}public class ajob implements job

}

spring提供兩種方式來封裝quartz的job,一種是直接派生自quartzjobbean,

public class report extends quartzjobbean 

@override

protected void executeinternal(jobexecutioncontext context)

throws jobexecutionexception catch (interruptedexception e)

}}

在xml配置檔案中將report包裝為jobdetailbean

spring會自動將jobdataasmap屬性中注入的map按照key注入到report物件

另一種方式是pojo實現,

public class checkdiskfreespace 

}}

下一步是定地trigger,

spring封裝了兩種常用的triggerbean,一種是******triggerbean,可以週期性執行job

另一種是crontriggerbean功能更強大,能指定何時執行job

cronexpression表示式

字段 	  	允許值 	  	允許的特殊字元

秒 0-59 , - * /

分 0-59 , - * /

小時 0-23 , - * /

日期 1-31 , - * ? / l w c

月份 1-12 或者 jan-dec , - * /

星期 1-7 或者 sun-sat , - * ? / l c #

年(可選) 留空, 1970-2099 , - * /

最後只需啟動scheduler

附表:"0 0 12 * * ?" 每天中午12點觸發

"0 15 10 ? * *" 每天上午10:15觸發

"0 15 10 * * ?" 每天上午10:15觸發

"0 15 10 * * ? *" 每天上午10:15觸發

"0 15 10 * * ? 2005" 2023年的每天上午10:15觸發

"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發

"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發

"0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發

"0 10,44 14 ? 3 wed" 每年三月的星期三的下午2:10和2:44觸發

"0 15 10 ? * mon-fri" 周一至周五的上午10:15觸發

"0 15 10 15 * ?" 每月15日上午10:15觸發

"0 15 10 l * ?" 每月最後一日的上午10:15觸發

"0 15 10 ? * 6l" 每月的最後乙個星期五上午10:15觸發

"0 15 10 ? * 6l 2002-2005" 2023年至2023年的每月的最後乙個星期五上午10:15觸發

"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

至於每個符號 看看例子就好了.很簡單了.

任務排程 資源排程整合(學習筆記)

works集合為什麼要使用hashset?driver程序是怎麼啟動起來的?掙扎的 掉隊的 任務 配置資訊的使用 重試機制 粗細粒度排程 spark在yarn集群上的兩種提交方式 spark submit excutor cores預設情況下,excutor的啟動,是輪訓方式啟動的,輪訓的方式在一定...

Spring整合Quartz任務排程

最近專案中用到了quartz任務排程來實現定時任務的功能,遂做小結,以便學習交流之用。quartz是乙個開源的作業排程框架,可以用它來建立簡單或者多個複雜的任務,並讓這些任務按計畫執行。我所做的專案是使用了spring中整合的quartz外掛程式,首先說明一下需求背景,這裡要實現的乙個功能是定時將滿...

spring整合quartz任務排程

quartz core org.quartz scheduler groupid quartz artifactid 1.8.6 version dependency quartz uses slf4j,so we need an actual logger ch.qos.logback group...