SpringBoot?使用定時(shí)任務(wù)(SpringTask)的詳細(xì)步驟
Spring3.0以后自帶的task,可以將它看成一個(gè)輕量級(jí)的Quartz,而且使用起來(lái)比Quartz簡(jiǎn)單許多。
使用步驟:
1.導(dǎo)入坐標(biāo)
在spring-boot-starter-web坐標(biāo)中,就包含了SpringTask,所以一般的Web項(xiàng)目都包含了。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

2.在啟動(dòng)類(lèi)中開(kāi)啟任務(wù)調(diào)度
package com.***;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling // 開(kāi)啟任務(wù)調(diào)度
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}3.編寫(xiě)自定義任務(wù)類(lèi)
package com.***.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
public class MyTask {
// 定時(shí)任務(wù)方法,指定什么時(shí)候觸發(fā) 這里是每五秒觸發(fā)一次
@Scheduled(cron = "0/5 * * * * ?")
public void TimeTask() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " 執(zhí)行任務(wù)");
}
}在任務(wù)類(lèi)中編寫(xiě)需要定時(shí)執(zhí)行的方法即可。在方法上面配置Cron表達(dá)式,控制執(zhí)行的頻率。
4.Cron表達(dá)式
Cron 表達(dá)式是一種用于指定定時(shí)任務(wù)執(zhí)行時(shí)間的字符串表達(dá)式。它由 6 個(gè)字段組成,分別表示秒、分鐘、小時(shí)、天數(shù)、月份和星期幾。每個(gè)字段都可以使用特定的符號(hào)來(lái)指定時(shí)間范圍或間隔。
┌──────────── [可選] 秒 (0 - 59)
| ┌────────── 分鐘 (0 - 59)
| | ┌──────── 小時(shí) (0 - 23)
| | | ┌────── 天數(shù) (1 - 31)
| | | | ┌──── 月份 (1 - 12) OR jan,feb,mar,apr ...
| | | | | ┌── 星期幾 (0 - 6, 星期天 = 0) OR sun,mon ...
| | | | | |
* * * * * * 命令除了基本的數(shù)字范圍外,Cron 表達(dá)式還支持一些特殊符號(hào)和字符:
- 星號(hào)(*):表示匹配任意值。例如,* 在分鐘字段中表示每分鐘都執(zhí)行。
- 逗號(hào)(,):用于分隔多個(gè)值。例如,1,3,5 在小時(shí)字段中表示 1 點(diǎn)、3 點(diǎn)和 5 點(diǎn)執(zhí)行。
- 斜線(/):用于指定間隔值。例如,*/5 在分鐘字段中表示每 5 分鐘執(zhí)行一次。
- 連字符(-):用于指定范圍。例如,10-20 在日期字段中表示從 10 號(hào)到 20 號(hào)。
- 問(wèn)號(hào)(?):僅用于日期和星期幾字段,表示不指定具體值。通常用于避免沖突。
以下是一些示例 Cron 表達(dá)式:
0 0 12 * * ?:每天中午 12 點(diǎn)執(zhí)行。0 0/5 * * * ?:每 5 分鐘執(zhí)行一次。0 0 8-18 ? * MON-FRI:周一至周五的 8 點(diǎn)到 18 點(diǎn)之間每小時(shí)執(zhí)行一次。
Cron 表達(dá)式非常靈活,可以滿(mǎn)足各種定時(shí)任務(wù)的需求。但需要注意的是,Cron 表達(dá)式只能表示固定的時(shí)間點(diǎn),無(wú)法處理復(fù)雜的時(shí)間邏輯。如果需要更復(fù)雜的定時(shí)任務(wù)調(diào)度,可能需要借助專(zhuān)門(mén)的調(diào)度框架或庫(kù)。
到此這篇關(guān)于SpringBoot 使用定時(shí)任務(wù)(SpringTask)的文章就介紹到這了,更多相關(guān)SpringBoot 使用定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring Task定時(shí)任務(wù)開(kāi)發(fā)實(shí)戰(zhàn)教程
- SpringTask-Timer實(shí)現(xiàn)定時(shí)任務(wù)的詳細(xì)代碼
- SpringTask實(shí)現(xiàn)定時(shí)任務(wù)方法講解
- Spring-Task定時(shí)任務(wù)的使用介紹
- Spring Task定時(shí)任務(wù)的實(shí)現(xiàn)詳解
- 使用spring-task定時(shí)任務(wù)動(dòng)態(tài)配置修改執(zhí)行時(shí)間
- Spring Task定時(shí)任務(wù)每天零點(diǎn)執(zhí)行一次的操作
- mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例
- Spring?Task實(shí)現(xiàn)定時(shí)任務(wù)的示例
相關(guān)文章
使用@TransactionalEventListener監(jiān)聽(tīng)事務(wù)教程
這篇文章主要介紹了使用@TransactionalEventListener監(jiān)聽(tīng)事務(wù)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
java 實(shí)現(xiàn)鏈棧存儲(chǔ)的方法
下面小編就為大家?guī)?lái)一篇java 實(shí)現(xiàn)鏈棧存儲(chǔ)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Java數(shù)據(jù)庫(kù)連接PreparedStatement的使用詳解
這篇文章主要介紹了Java數(shù)據(jù)庫(kù)連接PreparedStatement的使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Java中字符序列的替換與分解的幾種實(shí)現(xiàn)方法
本文主要介紹了Java中字符序列的替換與分解的幾種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
使用多個(gè)servlet時(shí)Spring security需要指明路由匹配策略問(wèn)題
這篇文章主要介紹了使用多個(gè)servlet時(shí)Spring security需要指明路由匹配策略問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟)
這篇文章主要介紹了使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
詳解如何解決SSM框架前臺(tái)傳參數(shù)到后臺(tái)亂碼的問(wèn)題
這篇文章主要介紹了詳解如何解決SSM框架前臺(tái)傳參數(shù)到后臺(tái)亂碼的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Java OpenCV利用KNN算法實(shí)現(xiàn)圖像背景移除
這篇文章主要為大家介紹了Java OpenCV利用K最鄰近(KNN,K-NearestNeighbor)分類(lèi)算法實(shí)現(xiàn)圖像背景移除的示例代碼,需要的可以參考一下2022-01-01
SpringBoot中WebClient的實(shí)踐過(guò)程
本文介紹了SpringBoot中WebClient的使用,包括配置、使用場(chǎng)景以及優(yōu)化策略,幫助開(kāi)發(fā)者更高效地進(jìn)行服務(wù)間通信,WebClient具有非阻塞式I/O、強(qiáng)大的功能、靈活性等優(yōu)點(diǎn),適用于高并發(fā)場(chǎng)景,通過(guò)合理配置和優(yōu)化,可以顯著提升服務(wù)間通信的效率和可靠性2025-12-12

