1>.
spring task概述
2>.
快速入門
<?xml version="1.0" encoding="utf-8"?>
xmlns
=""xmlns:xsi
=""xmlns:task
=""xsi:schemalocation
=" /spring-beans.xsd
/spring-task.xsd"
>
<
task:annotation-driven
>
task:annotation-driven
>
beans
>
@component
public
class
ordertask
}
3>.
cron表示式
1.
seconds:可出現,-
*/四個字元,有效範圍為0-
59的整數
2.minutes:可出現,-
*/四個字元,有效範圍為0-
59的整數
3.hours:可出現,-
*/四個字元,有效範圍為0-
23的整數
4.dayofmonth:可出現,-
*/?l
wc八個字元,有效範圍為1-
31的整數
5.month:可出現,-
*/四個字元,有效範圍為1-
12的整數或jan-decdayofweek:可出現,-
*/?l
c#四個字元,有效範圍為1-
7的整數或sun-sat兩個範圍。
1表示星期天,
2表示星期一,
依次類推
6.year:可出現,-
*/四個字元,有效範圍為
1970
-2099
年
1.
*:表示匹配該域的任意值
,任意時刻
2.?:
只能用在dayofmonth和dayofweek兩個域。它也匹配域的任意值,但實際不會。
因為dayofmonth和dayofweek會相互影響。
[例如想在每月的
20日觸發排程,不管
20日到底是星期幾,則只能使用如下寫法:
1313
1520*?
,其中最後一位只能用?,而不能使用
*如果使用
*表示不管星期幾都會觸發,實際上並不是這樣]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,表示某月的第二
個星期三
@
scheduled
(cron
="0 0/2 * * * ?"
):每兩分鐘間隔執行一次任務
@scheduled
(cron
="0 0 1 * * ?"):
每天凌晨執行一次
Spring Task 定時任務
所謂定時任務,就是根據我們設定的時間定時執行任務,就像定時發郵件一樣,設定時間到了,郵件就會自動傳送。在 spring 大行其道的今天,spring 也提供了其定時任務功能,spring task。同 spring 的其他功能一樣,我們既可以通過配置檔案也可以通過註解形式來實現。一 通過配置檔案 1...
Spring Task定時任務
spring task是spring3.0以後提供的定時任務工具。使用spring定時任務,除spring相關的包外不需要新增額外的jar包,支援註解和xml配置兩種形式。準備工作 在spring配置檔案頭中新增命名空間xmlns task及描述。1.1編寫註解的定時任務類 import org.s...
Spring task定時任務
第一次寫定時任務,簡訊通知定時,雖然寫完了,但是感覺 不夠簡潔,效能不行害怕跑蹦了,放到這裡一是為了記錄,更多的是希望大家提出寶貴的意見。1.將使用者id拼接成字串,用來批量查詢使用者資訊。string memberid membertransactions.stream map membertra...