1.使用jdk 自帶的timer和timerTask(實(shí)現(xiàn)了runable 接口的抽象類,自己寫的timerTask需要繼承它)
2.使用spring 自帶的Task ,可以基于通過XML配置和基于注解的方式任選一種進(jìn)行開發(fā)
3.spring 自帶的Task 中提到Cron 注解资铡,(秒 分 時(shí) dayOfMonth month dayOfWeek year(可選)),注意這個(gè)中間是沒有逗號(hào)的弛房,他們使用空格隔開的,如果使用逗號(hào)隔開而柑,表示該字段有多個(gè)值文捶。
例如:
在26分、29分媒咳、33分執(zhí)行一次:0 26,29,33 * * * ?
每天的0點(diǎn)粹排、13點(diǎn)、18點(diǎn)涩澡、21點(diǎn)都執(zhí)行一次:0 0 0,13,18,21 * * ?
Cron表達(dá)式的格式:秒 分 時(shí) 日 月 周 年(可選)顽耳。
字段名 允許的值 允許的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小時(shí) 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周幾 1-7 or SUN-SAT , - * ? / L C #
年 (可選字段) empty, 1970-2099 , - * /
“?”字符:表示不確定的值(通常用在 day of week 字段上)
“,”字符:指定多個(gè)個(gè)值
“-”字符:指定一個(gè)值的范圍
“/”字符:指定一個(gè)值的增加幅度。n/m表示從n開始妙同,每次增加m
“L”字符:用在日表示一個(gè)月中的最后一天射富,用在周表示該月最后一個(gè)星期X
“W”字符:指定離給定日期最近的工作日(周一到周五)
“#”字符:表示該月第幾個(gè)周X。6#3表示該月第3個(gè)周五