專案結構:
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"?>cronexpression表示式一般分為7部分 7org.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/
個字段並區別順序:秒
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命令是一次性定...