這篇文章有點久遠了,記得是第一次出來實習時,大三暑假自己找了一家軟體公司實習了很長時間,當時學到很多實踐性的東西,這個quartz就是其中乙個,還記得是做oa,一些訊息需要定時提醒定時刪除,專案框架裡也沒有,當時經驗不足也沒接觸過這樣類似的東西,所以用了整一下午的時間算是基本搞定了吧,今天很有興致,找出這篇大學時寫過的幾篇文章分享出來,內容如下:
1、
建立乙個定時任務並繼承類
quartzjobbean
並實現其方法
executeinternal(jobexecutioncontext context)
需要定時的任務嵌入其中:
package
com.
test
;import
org.quartz.jobexecutioncontext;
import
org.quartz.jobexecutionexception;
import
org.springframework.scheduling.quartz.quartzjobbean;
import
com.
test
.starshopmanager;
public
class
testj
ob extends
quartzjobbean
public
void
setstarshopmanager(starshopmanager starshopmanager)
}2、
在spring
配置檔案中配置(每個小時的第一分鐘觸發執行任務):
配置定時任務
-->
<
beanid=
"test
job"
class
="org.springframework.scheduling.quartz.jobdetailbean"
>
<
property
name
="jobclass"
>
<
value
>
com.test.test
jobvalue
>
property
>
<
property
name
="jobdataasmap"
>
<
map>
不是spring 管理的
service
需要放到這裡
-->
<
entry
key=
"timeout"
>
<
value
>
5value
>
entry
>
map>
property
>
bean
>
排程定時任務,這裡使用了crontirgger
觸發器-->
<
beanid=
"test
trigger"
class
="org.springframework.scheduling.quartz.crontriggerbean"
>
<
property
name
="jobdetail"
>
<
refbean="
test
job"
/>
property
>
<
property
name
="cronexpression"
>
<
value
>0 0
* * * ?
value
>
property
>
bean
>
<
beanid=
"test
"class
="org.springframework.scheduling.quartz.schedule***ctorybean"
>
<
property
name
="schedulercontextasmap"
>
<
map>
<
description
>
schedulercontextasmap
description
>
<
entry
key=
"starshopmanager"
value-ref
="starshopmanager"
/>
map>
property
>
<
property
name
="triggers"
>
<
list
>
<
refbean="
test
trigger"
/>
list
>
property
>
bean
>
3、 crontriggerbean
觸發器表示式解析即(
<
value
>0 0
* * * ?
value
>)1.
反斜線(/
)字元表示增量值。例如,在秒字段中
「5/15」
代表從第
5 秒開始,每
15 秒一次。
2.問號(?
)字元和字母
l 字元只有在月內日期和週內日期欄位中可用。問號表示這個欄位不包含具體值。所以,如果指定月內日期,可以在週內日期欄位中插入
「?」,表示週內日期值無關緊要。字母
l 字元是
last
的縮寫。放在月內日期欄位中,表示安排在當月最後一天執行。在週內日期欄位中,如果
「l」單獨存在,就等於
「7」,否則代表當月內週內日期的最後乙個例項。所以
「0l」
表示安排在當月的最後乙個星期日執行。
3.在月內日期欄位中的字母(w
)字元把執行安排在最靠近指定值的工作日。把
「1w」
放在月內日期欄位中,表示把執行安排在當月的第乙個工作日內。
4.井號(#
)字元為給定月份指定具體的工作日例項。把
「mon#2」
放在週內日期欄位中,表示把任務安排在當月的第二個星期一。
5.星號(*
)字元是通配字元,表示該欄位可以接受任何可能的值。
例子:"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年至
2005
年的每月的最後乙個星期五上午
10:15
觸發 "0 15 10 ? * 6#3" 每月的第三個星期五上午
10:15
觸發
43319193
SpringMVC整合quartz,實現定時任務
org.quartz scheduler quartz 1.8.4 public class timetask 時間的配置如下 0 26 16 value 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年 為任意 為無限制。由此上面所配置的內容就是,在每天的16點26分啟動znrwdb...
Spring整合使用quartz
spring已經整合了quartz,在spring中使用quartz的一般步驟為 1.實現任務類 public class productadschedulemanagerimpl 2.在spring xml 配置檔案中配置任務類bean 3.在spring xml 配置檔案中配置methodinv...
Spring框架整合Quartz
首先編寫任務類,該類繼承quartzjobbean父類,並在其實現方法內編寫job任務 配置spring的xml檔案,配置觸發器,以及排程器的bean jobdetail class org.springframework.scheduling.quartz.jobdetailbean name j...