微服務定時任務配置和常用的cron表示式

2021-10-23 04:16:30 字數 2739 閱讀 2950

1.1.1 啟動類配置

@enableeurekaclient

@enablefeignclients

@enablescheduling //啟用定時任務註解生效

public static void main(string args)

@bean

public idworker idworker()}

一會兒我們採用spring的定時任務定時將符合參與秒殺的商品查詢出來再存入到redis快取,所以這裡需要使用到定時任務。

1)在定時任務類的指定方法上加上@scheduled開啟定時任務

2)定時任務表示式:使用cron屬性來配置定時任務執行時間

1.1.2 定時任務方法配置

建立com.changgou.seckill.timer.seckillgoodspushtask類,並在類中加上定時任務執行方法,**如下:

@component

public class seckillgoodspushtask

}

1.1.3 定時任務常用時間表示式

crontrigger配置完整格式為: [秒][分] [小時][日] [月][周] [年]

序號說明

是否必填

允許填寫的值

允許的萬用字元1秒

是0-59

, - * /2分

是0-59

, - * /3小時

是0-23

, - * /4日

是1-31

, - * ? / l w5月

是1-12或jan-dec

, - * /6周

是1-7或sun-sat

, - * ? / l w7年

否empty 或1970-2099

, - * /

使用說明:

萬用字元說明:

* 表示所有值. 例如:在分的字段上設定 "*",表示每一分鐘都會觸發。

? 表示不指定值。使用的場景為不需要關心當前設定這個欄位的值。

例如:要在每月的10號觸發乙個操作,但不關心是週幾,所以需要周位置的那個字段設定為"?" 具體設定為 0 0 0 10 * ?

- 表示區間。例如 在小時上設定 "10-12",表示 10,11,12點都會觸發。

, 表示指定多個值,例如在周字段上設定 "mon,wed,fri" 表示周一,週三和周五觸發 12,14,19

/ 用於遞增觸發。如在秒上面設定"5/15" 表示從5秒開始,每增15秒觸發(5,20,35,50)。 在月字段上設定'1/3'所示每月1號開始,每隔三天觸發一次。

l 表示最後的意思。在日字段設定上,表示當月的最後一天(依據當前月份,如果是二月還會依據是否是潤年[leap]), 在周字段上表示星期六,相當於"7"或"sat"。如果在"l"前加上數字,則表示該資料的最後乙個。例如在周字段上設定"6l"這樣的格式,則表示「本月最後乙個星期五"

w 表示離指定日期的最近那個工作日(周一至周五). 例如在日字段上設定"15w",表示離每月15號最近的那個工作日觸發。如果15號正好是週六,則找最近的周五(14號)觸發, 如果15號是週未,則找最近的下周一(16號)觸發.如果15號正好在工作日(周一至周五),則就在該天觸發。如果指定格式為 "1w",它則表示每月1號往後最近的工作日觸發。如果1號正是週六,則將在3號下周一觸發。(注,"w"前只能設定具體的數字,不允許區間"-").

# 序號(表示每月的第幾個週幾),例如在周字段上設定"6#3"表示在每月的第三個週六.注意如果指定"#5",正好第五周沒有週六,則不會觸發該配置(用在母親節和父親節再合適不過了) ;

常用表示式

0 0 10,14,16 * * ? 每天上午10點,下午2點,4點 

0 0/30 9-17 * * ? 朝九晚五工作時間內每半小時

0 0 12 ? * wed 表示每個星期三中午12點

"0 0 12 * * ?" 每天中午12點觸發

"0 15 10 ? * *" 每天上午10:15觸發

"0 15 10 * * ?" 每天上午10:15觸發

"0 15 10 * * ? *" 每天上午10:15觸發

"0 15 10 * * ? 2005" 2023年的每天上午10:15觸發

"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發

"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發

"0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發

"0 10,44 14 ? 3 wed" 每年三月的星期三的下午2:10和2:44觸發

"0 15 10 ? * mon-fri" 周一至周五的上午10:15觸發

"0 15 10 15 * ?" 每月15日上午10:15觸發

"0 15 10 l * ?" 每月最後一日的上午10:15觸發

"0 15 10 ? * 6l" 每月的最後乙個星期五上午10:15觸發

"0 15 10 ? * 6l 2002-2005" 2023年至2023年的每月的最後乙個星期五上午10:15觸發

"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

spring定時任務的配置

spring的定時任務配置分為三個步驟 1 定義任務 2 任務執行策略配置 3 啟動任務 1 定義任務 class org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean execute false 2 任務執...

spring定時任務的配置

spring的定時任務配置分為三個步驟 1 定義任務 2 任務執行策略配置 3 啟動任務 1 定義任務 execute false 2 任務執行策略配置 1 指定重複間隔的定時任務 2 按週期執行的任務 0 42 10 3 啟動任務 至此,系統啟動的時候,就能載入定時任務,並按照指定的定時策略執行。...

系統的定時任務和延時任務

注 當任務有輸出時,輸出會以郵件的形式傳送給at任務的發起者。步驟 開啟postfix服務 命令 內部命令 1.輸入數字是檢視指定郵件的具體資訊 2.headers是檢視郵件列表 3.help檢視內部命令幫助 4.q是退出檢視郵件 命令 注 如果不寫username,預設在當前使用者執行命令 步驟 ...