本文主要講解mall整合springtask的過程,以批量修改超時訂單為例。
springtask是spring自主研發的輕量級定時任務工具,相比於quartz更加簡單方便,且不需要引入其他依賴即可使用。
cron表示式是乙個字串,包括6~7個時間元素,在springtask中可以用於指定任務的執行時間。cron的語法格式
seconds minutes hours dayofmonth month dayofweek
cron格式中每個時間元素的說明
時間元素
可出現的字元
有效數值範圍
seconds
, - * /
0-59
minutes
, - * /
0-59
hours
, - * /
0-23
dayofmonth
, - * / ? l w
0-31
month
, - * /
1-12
dayofweek
, - * / ? l #
1-7或sun-sat
cron格式中特殊字元說明 字元
作用舉例
,列出列舉值
在minutes域使用5,10,表示在5分和10分各觸發一次
-表示觸發範圍
在minutes域使用5-10,表示從5分到10分鐘每分鐘觸發一次
*匹配任意值
在minutes域使用*, 表示每分鐘都會觸發一次
/起始時間開始觸發,每隔固定時間觸發一次
在minutes域使用5/10,表示5分時觸發一次,每10分鐘再觸發一次
?在dayofmonth和dayofweek中,用於匹配任意值
在dayofmonth域使用?,表示每天都觸發一次
#在dayofmonth中,確定第幾個星期幾
1#3表示第三個星期日
l表示最後
在dayofweek中使用5l,表示在最後乙個星期四觸發
w表示有效工作日(周一到周五)
在dayofmonth使用5w,如果5日是星期六,則將在最近的工作日4日觸發一次
由於springtask已經存在於spring框架中,所以無需新增依賴。
只需要在配置類中新增乙個@enablescheduling註解即可開啟springtask的定時任務能力。
package com.macro.mall.tiny.config;
import org.springframework.context.annotation.configuration;
import org.springframework.scheduling.annotation.enablescheduling;
/** * 定時任務配置
* created by macro on 2019/4/8.
*/@configuration
@enablescheduling
public class springtaskconfig
package com.macro.mall.tiny.component;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
import org.springframework.scheduling.annotation.scheduled;
import org.springframework.stereotype.component;
/** * created by macro on 2018/8/24.
* 訂單超時取消並解鎖庫存的定時器
*/@component
public class ordertimeoutcanceltask
}
SpringMVC整合quartz,實現定時任務
org.quartz scheduler quartz 1.8.4 public class timetask 時間的配置如下 0 26 16 value 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年 為任意 為無限制。由此上面所配置的內容就是,在每天的16點26分啟動znrwdb...
第五步 整合SpringTask(實現定時任務)
1 新增依賴 由於springtask已經存在於spring框架中,不需要額外新增依賴 2 新增spring task配置package com.hzf.mymall.config import org.springframework.context.annotation.configuration...
Spring整合Quartz定時器實現定時作業任務
這篇文章有點久遠了,記得是第一次出來實習時,大三暑假自己找了一家軟體公司實習了很長時間,當時學到很多實踐性的東西,這個quartz就是其中乙個,還記得是做oa,一些訊息需要定時提醒定時刪除,專案框架裡也沒有,當時經驗不足也沒接觸過這樣類似的東西,所以用了整一下午的時間算是基本搞定了吧,今天很有興致,...