@Scheduled中的參數(shù)及Cron時間表達式用法詳解
在Spring Boot中設(shè)置定時任務(wù)時,可以使用注解@Scheduled。
@Scheduled注解可以用于標記一個方法,表示該方法需要定時執(zhí)行。
該注解提供了多種參數(shù)用于設(shè)置定時任務(wù)的執(zhí)行時間和頻率。
@Scheduled中的參數(shù)解釋
fixedDelay:間隔時間,表示多少毫秒之后執(zhí)行。fixedRate:頻率,表示每隔多少毫秒執(zhí)行一次。如果任務(wù)執(zhí)行時間超過了指定的頻率,則會等待任務(wù)執(zhí)行完畢后再執(zhí)行下一次任務(wù)。initialDelay:初始延遲時間,表示在應(yīng)用啟動后多久開始執(zhí)行定時任務(wù),單位為毫秒。默認為0。cron:用于設(shè)置高度定制化的執(zhí)行時間。支持Cron表達式,例如0 * * * * ?表示每分鐘執(zhí)行一次。
以下是代碼示例:
- 每3秒執(zhí)行一次任務(wù):
@Scheduled(fixedDelay = 3000)
public void task() {
// todo
}
- 每隔5秒執(zhí)行一次任務(wù):
@Scheduled(fixedRate = 5000)
public void task() {
// todo
}
- 延遲2秒后開始執(zhí)行任務(wù):
@Scheduled(initialDelay = 2000)
public void task() {
// todo
}
- 使用Cron表達式每天凌晨2點執(zhí)行任務(wù):
@Scheduled(cron = "0 0 2 * * ?")
public void task() {
// todo
}
cron時間表達式
cron表達式是一種時間表達式,可以用于表示基于時間的任務(wù)調(diào)度。它由6個時間部分組成,分別表示秒、分、時、日期、月份和星期,在不同的位置上使用不同的符號來表示取值范圍或取值。
下面是一個cron表達式的格式: 秒 分 時 日 月 周 計劃執(zhí)行的命令或腳本
常用的時間符號有以下幾種:
- 星號(*): 表示所有值,例如在小時的位置上設(shè)置星號就表示每個小時都會執(zhí)行。
- 逗號(,): 表示枚舉值,多個值之間用逗號隔開。
- 中橫線(-): 表示范圍,例如在小時的位置上設(shè)置為 5-10 就表示 從5到10小時都會被執(zhí)行。
- 斜杠(/): 表示步長,例如在小時的位置上設(shè)置為 */2 就表示每隔2小時執(zhí)行一次。
示例:
1.每天凌晨1點執(zhí)行定時任務(wù): 0 0 1 * * ? 2.每隔30分鐘執(zhí)行一次定時任務(wù): 0 0/30 * * * ? 3.在工作日上午9點到下午5點之間,每隔2分鐘執(zhí)行一次定時任務(wù): 0 0/2 9-17 * * MON-FRI 4.每周日晚上10點執(zhí)行定時任務(wù): 0 0 22 * * SUN 5.每個月最后一天的晚上11點執(zhí)行定時任務(wù): 0 0 23 L * ? 6.每個季度的第一個月的第一天早上6點執(zhí)行定時任務(wù): 0 0 6 1 JAN,APR,JUL,OCT ? 7.每天早上6點到晚上10點之間,每小時5分鐘執(zhí)行一次定時任務(wù): 0 5 6-22/1 * * ? 注:以上示例中,問號(?)表示不指定具體值,星號(*)表示任意值。具體每個元素的定義可查閱相關(guān)文檔。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java8 Stream Collectors收集器使用方法解析
這篇文章主要介紹了Java8 Stream Collectors收集器使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
詳解Spring 參數(shù)驗證@Validated和@Valid的區(qū)別
這篇文章主要介紹了詳解參數(shù)驗證 @Validated 和 @Valid 的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Spring?Security實現(xiàn)分布式系統(tǒng)授權(quán)方案詳解
這篇文章主要介紹了Spring?Security實現(xiàn)分布式系統(tǒng)授權(quán),本節(jié)完成注冊中心的搭建,注冊中心采用Eureka,本文通過示例代碼圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下2022-02-02
java環(huán)境配好后jar文件打開命令框閃退(無打開方式,無反應(yīng))解決辦法
在Java開發(fā)中我們經(jīng)常會遇到運行Jar包時閃退的問題,下面這篇文章主要給大家介紹了關(guān)于java環(huán)境配好后jar文件打開命令框閃退(無打開方式,無反應(yīng))的解決辦法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2024-04-04

