Spring 配置定時器

2021-06-25 13:28:52 字數 2480 閱讀 3723

各個時間可用值如下:

秒 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 , - * /

可用值詳細分析如下:

「*」——字元可以用於所有字段,在「分」欄位中設為"*"表示"每一分鐘"的含義。

「?」——字元可以用在「日」和「週幾」欄位. 它用來指定 '不明確的值'. 這在你需要指定這兩個欄位中的某乙個值而不是另外乙個的時候會被用到。在後面的例子中可以看到其含義。

「-」——字元被用來指定乙個值的範圍,比如在「小時」欄位中設為"10-12"表示"10點到12點"。

「,」——字元指定數個值。比如在「週幾」欄位中設為"mon,wed,fri"表示"the days monday, wednesday, and friday"。

「/」——字元用來指定乙個值的的增加幅度. 比如在「秒」欄位中設定為"0/15"表示"第0, 15, 30, 和 45秒"。而 "5/15"則表示"第5, 20, 35, 和 50". 在'/'前加"*"字元相當於指定從0秒開始. 每個欄位都有一系列可以開始或結束的數值。對於「秒」和「分」字段來說,其數值範圍為0到59,對於「小時」字段來說其為0到23, 對於「日」字段來說為0到31, 而對於「月」字段來說為1到12。"/"字段僅僅只是幫助你在允許的數值範圍內從開始"第n"的值。

「l」——字元可用在「日」和「週幾」這兩個字段。它是"last"的縮寫, 但是在這兩個欄位中有不同的含義。例如,「日」欄位中的"l"表示"乙個月中的最後一天" —— 對於一月就是31號對於二月來說就是28號(非閏年)。而在「週幾」欄位中, 它簡單的表示"7" or "sat",但是如果在「週幾」欄位中使用時跟在某個數字之後, 它表示"該月最後乙個星期×" —— 比如"6l"表示"該月最後乙個周五"。當使用'l'選項時,指定確定的列表或者範圍非常重要,否則你會被結果搞糊塗的。

「w」——可用於「日」字段。用來指定歷給定日期最近的工作日(周一到周五) 。比如你將「日」欄位設為"15w",意為: "離該月15號最近的工作日"。因此如果15號為週六,觸發器會在14號即周五呼叫。如果15號為週日, 觸發器會在16號也就是周一觸發。如果15號為周二,那麼當天就會觸發。然而如果你將「日」欄位設為"1w", 而一號又是週六, 觸發器會於下周一也就是當月的3號觸發,因為它不會越過當月的值的範圍邊界。'w'字元只能用於「日」欄位的值為單獨的一天而不是一系列值的時候。

「l」和「w」可以組合用於「日」字段表示為'lw',意為"該月最後乙個工作日"。

「#」—— 字元可用於「週幾」字段。該字元表示「該月第幾個周×」,比如"6#3"表示該月第三個周五( 6表示周五而"#3"該月第三個)。再比如: "2#1" = 表示該月第乙個周一而 "4#5" = 該月第五個週三。注意如果你指定"#5"該月沒有第五個「周×」,該月是不會觸發的。

「c」—— 字元可用於「日」和「週幾」字段,它是"calendar"的縮寫。 它表示為基於相關的日曆所計算出的值(如果有的話)。如果沒有關聯的日曆, 那它等同於包含全部日曆。「日」字段值為"5c"表示"日曆中的第一天或者5號以後",「週幾」字段值為"1c"則表示"日曆中的第一天或者週日以後"。

對於「月份」欄位和「週幾」字段來說合法的字元都不是大小寫敏感的。

附表:"0 0 12 * * ?" 每天中午12點觸發

"0 15 10 ? * *" 每天上午10:15觸發

"0 15 10 * * ?" 每天上午10:15觸發

"0 15 10 * * ? *" 每天上午10:15觸發

"0 15 10 * * ? 2005" 2023年的每天上午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" 2023年至2023年的每月的最後乙個星期五上午10:15觸發

"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

注:需要引入spring定時器的jar包,否則會報錯,找不到指定的spring類(個人配置的spring.jar + quartz-all-1.6.6.jar)

spring 定時器配置

spring 中配置定時器 如果是乙個普通的類,不需要注入dao層 上面的兩個bean節點根據自己的情況任選乙個,下面的bean節點都是需要的。0 0 0,12 時間的配置如下 0 26 16 value 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年 為任意 為無限制。由此上面所配...

spring 定時器配置

xmlns task spring task 3.1.xsd task任務掃瞄註解 掃瞄位置 寫自己的定時方法 service taskservice public class taskserviceimpl implements taskservice public inte ce taskser...

spring 定時器配置

spring quartz spring 中配置定時器 如果是乙個普通的類,不需要注入dao層 上面的兩個bean節點根據自己的情況任選乙個,下面的bean節點都是需要的。0 0 0,12 時間的配置如下 0 26 16 value 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年 為...