quartz石英任務

2021-08-20 02:07:28 字數 2187 閱讀 5383

定時任務:

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 複雜到需要乙個專門的框架來幹這個事...