Cron表達式

CronTrigger

CronTriggers往往比SimpleTrigger更有用,如果您需要基于日歷的概念,而非SimpleTrigger完全指定的時間間隔,復發的發射工作的時間表。
CronTrigger,你可以指定觸發的時間表如“每星期五中午”,或“每個工作日9:30時”,甚至“每5分鐘一班9:00和10:00逢星期一上午,星期三星期五“。
即便如此,SimpleTrigger一樣,CronTrigger擁有的startTime指定的時間表時生效,指定的時間表時,應停止(可選)結束時間。

Cron Expressions

cron的表達式被用來配置CronTrigger實例。?cron的表達式是字符串,實際上是由七子表達式,描述個別細節的時間表。這些子表達式是分開的空白,代表:

  1. 1.????????Seconds
  2. 2.????????Minutes
  3. 3.????????Hours
  4. 4.????????Day-of-Month
  5. 5.????????Month
  6. 6.????????Day-of-Week
  7. 7.????????Year (可選字段)

例 ?"0 0 12 ? * WED" 在每星期三下午12:00 執行,

個別子表達式可以包含范圍, 例如,在前面的例子里("WED")可以替換成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".

“*” 代表整個時間段.

每一個字段都有一套可以指定有效值,如

Seconds?(秒)???????? :可以用數字0-59 表示,

Minutes(分)????????? :可以用數字0-59 表示,

Hours(時)???????????? :可以用數字0-23表示,

Day-of-Month(天) :可以用數字1-31 中的任一一個值,但要注意一些特別的月份

Month(月)??????????? :可以用0-11 或用字符串 ?“JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示

Day-of-Week(每周)可以用數字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示

“/”:為特別單位,表示為“每”如“0/15”表示每隔15分鐘執行一次,“0”表示為從“0”分開始, “3/20”表示表示每隔20分鐘執行一次,“3”表示從第3分鐘開始執行

“?”:表示每月的某一天,或第周的某一天

“L”:用于每月,或每周,表示為每月的最后一天,或每個月的最后星期幾如“6L”表示“每月的最后一個星期五”

“W”:表示為最近工作日,如“15W”放在每月(day-of-month)字段上表示為“到本月15日最近的工作日”

““#”:是用來指定“的”每月第n個工作日,例 在每周(day-of-week)這個字段中內容為"6#3" or "FRI#3" 則表示“每月第三個星期五”

?

1)Cron表達式的格式:秒 分 時 日 月 周 年(可選)。

?????????????? 字段名???????????????? 允許的值??????????????????????? 允許的特殊字符??
?????????????? 秒????????????????????? ?? 0-59?????????????????????????????? , - * /??
?????????????? 分???????????????????????? 0-59?????????????????????????????? , - * /??
?????????????? 小時?????????????????? ? 0-23?????????????????????????????? , - * /??
?????????????? 日????????????????????? ?? 1-31?????????????????????????????? , - * ? / L W C??
?????????????? 月???????????????????????? 1-12 or JAN-DEC?????????, - * /??
?????????????? 周幾???????????????????? 1-7 or SUN-SAT???????????, - * ? / L C #??
?????????????? 年 (可選字段)???? empty, 1970-2099????? , - * /

?

?????????????? “?”字符:表示不確定的值

?????????????? “,”字符:指定數個值

?????????????? “-”字符:指定一個值的范圍

?????????????? “/”字符:指定一個值的增加幅度。n/m表示從n開始,每次增加m

?????????????? “L”字符:用在日表示一個月中的最后一天,用在周表示該月最后一個星期X

?????????????? “W”字符:指定離給定日期最近的工作日(周一到周五)

?????????????? “#”字符:表示該月第幾個周X。6#3表示該月第3個周五

?

?

???????? 2)Cron表達式范例:

???????????????? 每隔5秒執行一次:*/5 * * * * ?

???????????????? 每隔1分鐘執行一次:0 */1 * * * ?

???????????????? 每天23點執行一次:0 0 23 * * ?

???????????????? 每天凌晨1點執行一次:0 0 1 * * ?

???????????????? 每月1號凌晨1點執行一次:0 0 1 1 * ?

???????????????? 每月最后一天23點執行一次:0 0 23 L * ?

???????????????? 每周星期天凌晨1點實行一次:0 0 1 ? * L

???????????????? 在26分、29分、33分執行一次:0 26,29,33 * * * ?

???????????????? 每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

在線編輯:http://cron.qqe2.com/

?

cron表達式詳解

Cron表達式是一個字符串,字符串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義,Cron有如下兩種語法格式:?

Seconds Minutes Hours DayofMonth Month DayofWeek Year或?
Seconds Minutes Hours DayofMonth Month DayofWeek

每一個域可出現的字符如下:?
Seconds:可出現", - * /"四個字符,有效范圍為0-59的整數?
Minutes:可出現", - * /"四個字符,有效范圍為0-59的整數?
Hours:可出現", - * /"四個字符,有效范圍為0-23的整數?
DayofMonth:可出現", - * / ? L W C"八個字符,有效范圍為0-31的整數?
Month:可出現", - * /"四個字符,有效范圍為1-12的整數或JAN-DEc?
DayofWeek:可出現", - * / ? L C #"四個字符,有效范圍為1-7的整數或SUN-SAT兩個范圍。1表示星期天,2表示星期一, 依次類推?
Year:可出現", - * /"四個字符,有效范圍為1970-2099年

每一個域都使用數字,但還可以出現如下特殊字符,它們的含義是:?
(1)*:表示匹配該域的任意值,假如在Minutes域使用*, 即表示每分鐘都會觸發事件。

(2)?:只能用在DayofMonth和DayofWeek兩個域。它也匹配域的任意值,但實際不會。因為DayofMonth和DayofWeek會相互影響。例如想在每月的20日觸發調度,不管20日到底是星期幾,則只能使用如下寫法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期幾都會觸發,實際上并不是這樣。?

(3)-:表示范圍,例如在Minutes域使用5-20,表示從5分到20分鐘每分鐘觸發一次?

(4)/:表示起始時間開始觸發,然后每隔固定時間觸發一次,例如在Minutes域使用5/20,則意味著5分鐘觸發一次,而25,45等分別觸發一次.?

(5),:表示列出枚舉值值。例如:在Minutes域使用5,20,則意味著在5和20分每分鐘觸發一次。?

(6)L:表示最后,只能出現在DayofWeek和DayofMonth域,如果在DayofWeek域使用5L,意味著在最后的一個星期四觸發。?

(7)W:表示有效工作日(周一到周五),只能出現在DayofMonth域,系統將在離指定日期的最近的有效工作日觸發事件。例如:在 DayofMonth使用5W,如果5日是星期六,則將在最近的工作日:星期五,即4日觸發。如果5日是星期天,則在6日(周一)觸發;如果5日在星期一到星期五中的一天,則就在5日觸發。另外一點,W的最近尋找不會跨過月份?

(8)LW:這兩個字符可以連用,表示在某個月最后一個工作日,即最后一個星期五。?

(9)#:用于確定每個月第幾個星期幾,只能出現在DayofMonth域。例如在4#2,表示某月的第二個星期三。

舉幾個例子:?
0 0 2 1 * ? * 表示在每月的1日的凌晨2點調度任務?
0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15執行作業?
0 15 10 ? 6L 2002-2006 表示2002-2006年的每個月的最后一個星期五上午10:15執行作


一個cron表達式有至少6個(也可能7個)有空格分隔的時間元素。?
按順序依次為?
秒(0~59)?
分鐘(0~59)?
小時(0~23)?
天(月)(0~31,但是你需要考慮你月的天數)?
月(0~11)?
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)?
年份(1970-2099)

其中每個元素可以是一個值(如6),一個連續區間(9-12),一個間隔時間(8-18/4)(/表示每隔4小時),一個列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"這兩個元素互斥的,必須要對其中一個設置?

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觸發


有些子表達式能包含一些范圍或列表

例如:子表達式(天(星期))可以為 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”

“*”字符代表所有可能的值

因此,“*”在子表達式(月)里表示每個月的含義,“*”在子表達式(天(星期))表示星期的每一天


“/”字符用來指定數值的增量?
例如:在子表達式(分鐘)里的“0/15”表示從第0分鐘開始,每15分鐘?
在子表達式(分鐘)里的“3/20”表示從第3分鐘開始,每20分鐘(它和“3,23,43”)的含義一樣


“?”字符僅被用于天(月)和天(星期)兩個子表達式,表示不指定值?
當2個子表達式其中之一被指定了值以后,為了避免沖突,需要將另一個子表達式的值設為“?”

“L” 字符僅被用于天(月)和天(星期)兩個子表達式,它是單詞“last”的縮寫?
但是它在兩個子表達式里的含義是不同的。?
在天(月)子表達式中,“L”表示一個月的最后一天?
在天(星期)自表達式中,“L”表示一個星期的最后一天,也就是SAT

如果在“L”前有具體的內容,它就具有其他的含義了

例如:“6L”表示這個月的倒數第6天,“FRIL”表示這個月的最一個星期五?
注意:在使用“L”參數時,不要指定列表或范圍,因為這會導致問題

字段 允許值 允許的特殊字符?
秒 0-59 , - * /?
分 0-59 , - * /?
小時 0-23 , - * /?
日期 1-31 , - * ? / L W C?
月份 1-12 或者 JAN-DEC , - * /?
星期 1-7 或者 SUN-SAT , - * ? / L C #?
年(可選) 留空, 1970-2099 , - * /

轉載于:https://www.cnblogs.com/ChineseMoonGod/p/5308121.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374979.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374979.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374979.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解JavaScript學習筆記(3)_全面解析Module模式

簡介 Module模式是JavaScript編程中一個非常通用的模式,一般情況下,大家都知道基本用法,本文嘗試著給大家更多該模式的高級使用方式。 首先我們來看看Module模式的基本特征: 模塊化,可重用封裝了變量和function&#x…

匯編----乘指令: MUL、IMUL

MUL: 無符號乘 ;影響 OF、CF 標志位;指令格式:;MUL r/m ;參數是乘數;如果參數是 r8/m8, 將把 AL 做乘數, 結果放在 AX;如果參數是 r16/m16, 將把 AX 做乘數, 結果放在 EAX;如果參數是 r32/m32, 將把 EAX 做乘數, 結果放在 EDX:EAX IMUL: 有符號乘 ;影響 OF、CF 標志位;…

Google App Engine Java功能和命名空間API

功能API 使用Capabilities API,您的應用程序可以檢測特定API功能的停機和計劃停機時間。 您可以使用此API來檢測應用程序何時不可用,然后繞過它來減少應用程序的停機時間。 我們該如何處理,這是個折衷方案? 1.優雅:創…

破解key file時經常用到的幾個API函數及其用法

CreateFile函數 ================================================================================== CreateFile: Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: file, file stream, directory, physical disk, volume, …

PHP計劃任務之關閉瀏覽器后仍然繼續執行的函數

函數名稱:ignore_user_abort 本函數配置或取得使用端連接中斷后,PHP 程序是否仍繼續執行。默認值為中斷連接后就停止執行。在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 選項就是配置處。本功能在 PHP 3.0.7 版之后才開始提供。 官方說明…

node--更新數據庫問題

昨天測試blog的comment功能,在新增comment相關的代碼之后,重啟應用,出現Cannot call method forEach of undefined 。反復核對代碼,都沒發現異常,最后將數據庫文件刪除之后,再重啟數據庫,一切正…

U盤做完啟動盤,如何恢復原始容量

(1)右擊“我的電腦”,選擇“管理”選項,之后選擇“磁盤管理”,查看自己U盤的索引,如:Disk 1(2)在運行窗口,輸入cmd,回車,出現Dos運行環…

GWT Spring和Hibernate進入數據網格世界

利用Infinispan數據網格的功能最大化Hibernate性能。 一個GWT , Spring , JPA , Hibernate , Infinispan集成教程。 在本教程中,我們將討論如何將Infinispan用作Hibernate二級緩存提供程序。 Infinispan是JBoss緩存的…

記對一個key file crackme的破解

crackme下載地址: http://kssd.pediy.com/tutorial/exercise/section04/chap6-1-4-03.zip ------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------…

第八章 CTE 遞歸 及 分組匯總 高級部分(多維數據集)

UNION 等集合操作符:UNION 等以第一個 SELECT 的 列明 作為 整個結果集的列明,整個結果集 唯一認可的 唯一邏輯處理階段 是 ORDER BY 這個意思是說 只有 ORDER BY 是對整個結果集作用的,其它都操作都作用在 UINON 兩側的 子集合中。EXCEPT 操…

Java Code Geeks Andygene Web原型

大家好, 我們很高興地宣布,一組Maven原型的第一個版本已經發布!!! 該集合的目的是提供可以滿足各種開發需求的項目模板。 您可以在本文末尾找到JCG路線圖。 該第一個發行版旨在提供項目模板-Web應用程序的體系結構。 …

關于如何用od反匯編win32 控制臺程序

*********************************************************** 如何用od反匯編win32 控制臺程序(類似dos程序)呢?*********************************************************** 注:od是用來調試win32程序的 1.反編譯win32 控制臺程序&…

Chrome/Chromium HTML5 video 視頻播放硬件加速

Chromium站點上有個大致的框圖。描寫敘述了Chromium的video在各個平臺 - 包含Android - 上是怎樣使用硬件資源來做視頻編解碼加速的: 而依據Android Kitkat上的Chromium代碼分析,HTML5 video播放硬件加速,終于是使用MediaCodec.java來利用本地…

.net mvc結合微軟提供的FormsAuthenticationTicket登陸

一、Web.config <system.web><compilation debug"true" targetFramework"4.5" /><httpRuntime targetFramework"4.5" /><authentication mode"Forms"><forms loginUrl"/Sign/SignIn" defaultUrl…

vc6.o--fatal error C1010錯誤的解決

當編譯c文件時&#xff0c;出錯信息為&#xff1a;fatal error C1010: unexpected end of file while looking for precompiled header directive 解決方案&#xff1a; 1、如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的&#xff0c;則AltF7進入當前工程的…

具有Java 7中自動資源管理功能的GC

這篇文章簡要概述了Java 7中引入的稱為自動資源管理或ARM的新功能。 文章探討了ARM如何減少開發人員為有效釋放分配的資源的JVM堆而必須編寫的代碼。 Java編程語言中編程的最甜蜜之處之一是對象取消分配的自動處理。 在Java世界中&#xff0c;這通常被稱為垃圾收集。 基本上&am…

PHP學習筆記(六)

《Wordpress 50個過濾鉤子》 1-10 過濾鉤子是一類函數&#xff0c;wordpress執行傳遞和處理數據的過程中&#xff0c;在針對這些數據做出某些動作之前的特定點執行。本質上&#xff0c;就是在wordpress輸出之前&#xff0c;將對瀏覽數據做出反應。 添加過濾鉤子&#xff1a; ad…

JS 操作 radio input(cc問卷管理)

1、選中特定的單選按鈕 function showDetail(content){$("input[name^radio]").removeAttr("checked");for(var i0;i<content.length;i){$("#radio"(i1)content.substr(i,1)).attr("checked","checked");} }2、手動添加問…

國內外著名黑客雜志

國外黑客雜志&#xff1a; 《phrack》黑客雜志 http://www.phrack.org 《phrack》創刊于80年代&#xff0c;是世界級的頂級黑客雜志&#xff0c;每年只有一期&#xff0c;現已出了65期&#xff0c;國人似乎至今只有三人在上面發表發表文章&#xff0c;三人好像都是綠盟的人&…