前言:接觸過 Linux 的朋友對Cron表達式應該不會陌生,在 Linux 操作系統下要寫個自動化腳本就會用到這個表達式。
Spring 實現定時服務或計劃任務的時候也需要用到 Quartz 的 Cron表達式 ,因此在做 Spring計劃任務之前,需要掌握一些Cron的知識。
Quartz官方下載地址:http://quartz-scheduler.org/downloads/catalog?activated=true
我下載使用的是 2.0.2 版本,本篇文章參考的是官網幫助文檔的 Cron表達式 ,英文在線幫助文檔的,有興趣的可以前往:
Cron expressions:http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger
下面是官方對 Cron表達式的說明:

摘要:A cron expression is a string comprised of 6 or 7 fields separated by white space.
一個 Cron表達式是由6或7個字段(年字段是可選字段)的字符串組成,字段與字段之間用空格來隔開。
上面的表格已經詳細的列出了每個字段能使用的匹配符和每個字段的有效取值范圍,看一下就很明白了,這里就不再列出。
Cron表達式使用格式:


文檔上對每個符號代表的什么含義都解釋的很清楚了,下面來整理一下







觸發器將觸發16日周一。如果15日不是周六或周日,而是周一至周五的某一個,那么它就在15日當天觸發事件

官方文檔給出的例子及解釋:







"0 0/5 14,18 * * ?" 每天14點開始到14:59期間和18點到18:59期間的每5分鐘觸發一次事件
"0 0-5 14 * * ?" 每天14點到14:05期間的每1分鐘觸發一次事件
"0 10,44 14 ? 3 WED" 每年3月的星期三的14:10和14: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觸發一次事件