日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring定时器corn表达式

發布時間:2023/11/30 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring定时器corn表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每當使用Spring定時器時,每次設置時間都要去百度一次或者到處找原來的配置,很少麻煩。就決定學習下。

以下是官網的原話和例子:

The pattern is a list of six single space-separated fields: representing second, minute, hour, day, month, weekday. Month and weekday names can be given as the first three letters of the English names.

(該模式是六個以空格分隔的字符組成的列表:代表秒,分,時,日,月,周。周的名稱可以作為英文名在前三個字母給出)

Example patterns:

  • "0 0 * * * *" = the top of every hour of every day(每天整點執行).
  • "*/10 * * * * *" = every ten seconds(每十秒執行).
  • "0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day(每天8點到10點執行).
  • "0 0 6,19 * * *" = 6:00 AM and 7:00 PM every day(每天6點到19點執行).
  • "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day(每8點到10點,半小時執行一次).
  • "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays(每周的工作日9點到17點執行)
  • "0 0 0 25 12 ?" = every Christmas Day at midnight(每年12月15日的0點執行,也就是圣誕節)

所以,表達式的順序應該是 秒-分-時-日-月-年,按最小從左邊開始排列。順序了解后,就需要繼續了解例子中??* / , ??這一些標點符號的意義了(這里參考了百度百科的https://baike.baidu.com/item/cron/10952601?fr=aladdin):

(1)*:表示匹配該域的任意值,即在秒的位置就每秒,在分的位置就每分......

(2)?:只能用在DayofMonth(月)和DayofWeek(周)兩個域。比如要每個月的20號執行,則寫為13 13 15 20 * *, 但是不應該這樣寫的。月和周互相影響。每個月20號的周幾是不一樣的,所以這個?的用法就出來了,用著相互影響的點。13 13 15 20 * ?

(3)-:表示范圍,參考上面例子,0 0 8-10 * * *,代表8點到10點。

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

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

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

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

(8)LW:這兩個字符可以連用,表示在某個月最后一個工作日,即最后一個非周六周末的日期。

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

?

一些例子:

0 */1 * * * ? 每分鐘執行

0 0 2 1 * ? * 表示在每月的1日的凌晨2點調度任務

0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15執行作業

0 15 10 ? * 6L 2002-2006 表示2002-2006年的每個月的最后一個星期五上午10:15執行作

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

?

這里有個地方要注意: corn表達式并不是一定就是6位,也有些寫成7位的。第7位是年,只不過可以為空的。

?

總結

以上是生活随笔為你收集整理的Spring定时器corn表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。