Quartz Spring 定時任務

2021-07-22 22:44:07 字數 3107 閱讀 5835

專案結構:

myjob就是我們要定時執行的任務:

/**

* 定時執行的任務

* @author hulujie

* */

public class myjob

}

<?xml version="1.0" encoding="utf-8"?>

servlet-context.xml配置:

<?xml version="1.0" encoding="utf-8"?> 	

web.xml配置

<?xml version="1.0" encoding="utf-8"?>

org.springframework.web.context.contextloaderlistener

contextconfiglocation

/web-inf/conf/servlet-context.xml,/web-inf/conf/quartz-context.xml

org.springframework.web.servlet.dispatcherservlet

contextconfiglocation

/web-inf/conf/servlet-context.xml1/

cronexpression表示式一般分為7部分 7

個字段並區別順序:秒

0-59,分

0-59,小時

0-23

,月內日期

1-31,月

1-12

或者jan-dec

,週內日期

1-7或者

sun-sat,年

(可選字段

)留空或者

1970-2099

並且通過特殊字元表示特殊意義

,具體為下:斜線

(/)字元表示增量值。例如

,在秒字段中

"5/15"

代表從第

5秒開始,每

15秒一次。

問號(?)字元和字母

l字元只有在月內日期和週內日期欄位中可用

。問號表示這個欄位不包含具體值。所以

,如果指定月內日期

,可以在週內日期欄位中插入

"?",

表示週內日期值無關緊要

。這裡有個很蛋疼的設定,無關

quartz

,而是spring

整合quartz

後,它自己加的乙個約束,那就是:日期

(1-31)

和星期(sun-sat)

兩者,必須有乙個是問號

(?),系統在啟動的時候,

spring

會檢查表示式,如果不符合它的規則,就會拋異常。所以在使用的時候這個地方一定要注意,而這個在

linux

上執行cron

是沒有這個限制的。

字母l字元是last

的縮寫。

放在月內日期欄位中

,表示安排在當月最後一天執行

。在週內日期欄位中,如果

"l"單獨存在

,就等於

"7",

否則代表當月內週內日期的最後乙個例項。所以

"0l"

表示安排在當月的最後乙個星期日執行。

字母(w)字元把執行安排在最靠近指定值的工作日。把

"1w"

放在月內日期欄位中

,表示把執行安排在當月的第乙個工作日內。

井號(#)字元為給定月份指定具體的工作日例項。把

"mon#2"

放在週內日期欄位中

,表示把任務安排在當月的第二個星期一。

星號(*)字元是通配字元

,表示該欄位可以接受任何可能的值

、表示式例子。

例子:"0 0 08 * * ?" 

每天上午

8點觸發

"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 2009-2019" 2009

年至2019

年的每月的最後乙個星期五上午

10:15

觸發"0 15 10 ? * 6#3" 

每月的第三個星期五上午

10:15觸發

Quartz Spring 定時任務應用

在實際的專案應用中常遇到定時執行某個任務,比如定時重新整理商品的狀態,定時更新token等等,定時任務在系統中的應用恨頻繁下面就簡單講解一下定時任務框架quartz 和 spring的整合。public class testtask execute false 0 55 2 28 配置完整格式為 秒...

定時任務元件Quartz Spring

org.quartz schedulergroupid quartzartifactid 2.2.3version dependency org.quartz schedulergroupid quartz jobsartifactid 2.2.1version dependency org.spr...

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...