定時任務:
quartz:的幾大核心概念
job:任務(我們需要完成的事情);【要炸大本營】
jobdetail:任務詳情(任務怎麼做,誰來做);
【執行任務需要的物件,資料資訊等】【張三,50噸tnt】
quartz:為了併發執行;
job(定義任務怎麼執行的類)---jobdetail(當次執行的例項);
trigger:觸發器;用來執行任務的;【炸藥的引信】
scheduler:排程器;排程任務;【幫我們在指定時間觸發trigger】【中控台】
scheduler.schedulejob(job, trigger);
步驟:1)、匯入相關依賴;
org.quartz-scheduler
quartz
2.1)配置版
@service
public class quartzservice
public void msg()
}
2.2)註解版
@enablescheduling //開啟排程功能;
//@enable***只需要出現一次即可
@service
public class quartzservice
//這是乙個定時任務
//註解版的任務排程起作用必須開啟註解版的任務排程功能;
@scheduled(cron="* * * * * ?")
public void msg()
}
3)寫法例項
(cron="7 8 9 10 11 ?"):11月10日9點8分7秒啟動一次這個任務
0 0 10,14,16 * * ?
每天上午
10點,下午2點,
4點0 0/30 9-17 * * ?
朝九晚五工作時間內每半小時
0 0 12 ? * wed
表示每個星期三中午12點
"0 0 12 * * ?"
每天中午
12點觸發
"0 15 10 ? * *"
每天上午
10:15
觸發"0 15 10 * * ?"
每天上午
10:15
觸發"0 15 10 * * ? *"
每天上午
10:15
觸發"0 15 10 * * ? 2005" 2005
年的每天上午
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" 2002
年至2005
年的每月的最後乙個星期五上午
10:15
觸發"0 15 10 ? * 6#3"
每月的第三個星期五上午
10:15
觸發
quartz任務並行
任務有並行和序列之分,並行是指 乙個定時任務,當執行時間到了的時候,立刻執行此任務,不管當前這個任務是否在執行中 序列是指 乙個定時任務,當執行時間到了的時候,需要等待當前任務執行完畢,再去執行下乙個任務。quartz框架中防止任務並行可以有兩種方案 1 如果是 通過methodinvokingjo...
Quartz任務執行
quartz任務排程器,有個很憂傷的限制,就是提交的任務只能指定job class型別,具體job的例項例項化有quartz來建立,且任務每次執行都會建立乙個job例項,在某些場景下,我們可能需要傳遞乙個job例項 比如job的屬性有其他方式注入 那麼直接使用quartz則不太能滿足,我們需要借助d...
任務排程 Quartz
首先,quartz是什麼 先看看我們生活中的例子 每月的2月21號提醒我今天是男朋友的生日 每月的17號提醒我大姨媽快要來了 每隔一小時提醒我起來走走運動運動 就是在某乙個有規律的時間點乾某件事。並且時間的觸發的條件可以非常複雜 比如每月最後乙個工作日的17 50 複雜到需要乙個專門的框架來幹這個事...