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...