天天看點

定時任務

springtask

定時任務工具

cron表達式

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分鐘再觸發一次

? 在dayofmonth和dayofweek中,用于比對任意值 在dayofmonth域使用?,表示每天都觸發一次

在dayofmonth中,确定第幾個星期幾 1#3表示第三個星期日

l 表示最後 在dayofweek中使用5l,表示在最後一個星期四觸發

w 表示有效工作日(周一到周五) 在dayofmonth使用5w,如果5日是星期六,則将在最近的工作日4日觸發一次

業務場景說明

使用者對某商品進行下單操作;

系統需要根據使用者購買的商品資訊生成訂單并鎖定商品的庫存;

系統設定了60分鐘使用者不付款就會取消訂單;

開啟一個定時任務,每隔10分鐘檢查下,如果有逾時還未付款的訂單,就取消訂單并取消鎖定的商品庫存。

配置

就是在一個配置類上加上@enablescheduling

執行定時任務的類

感謝macro,文章内容全來自macro