整合SpringTask實現定時任務

2021-10-25 01:22:29 字數 2070 閱讀 6790

本文主要講解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,一些訊息需要定時提醒定時刪除,專案框架裡也沒有,當時經驗不足也沒接觸過這樣類似的東西,所以用了整一下午的時間算是基本搞定了吧,今天很有興致,...