定時任務(wù)@Scheduled用法及其參數(shù)使用
定時任務(wù)@Scheduled用法及參數(shù)
@Scheduled是Spring框架中的一個注解,用于標(biāo)記一個方法為定時任務(wù)。
當(dāng)使用@Scheduled注解時,Spring會自動創(chuàng)建一個定時任務(wù)的執(zhí)行器(Scheduler),并在指定的時間間隔內(nèi)執(zhí)行被標(biāo)記的方法。
使用@Scheduled注解時,可以通過設(shè)置不同的屬性來定義定時任務(wù)的行為,例如:
fixedRate
:固定頻率執(zhí)行任務(wù),表示每隔指定的時間間隔執(zhí)行一次任務(wù)。fixedDelay
:固定延遲執(zhí)行任務(wù),表示在上一次任務(wù)執(zhí)行完成后,等待指定的時間間隔再執(zhí)行下一次任務(wù)。initialDelay
:初始延遲時間,表示在第一次執(zhí)行任務(wù)之前的等待時間。cron
:使用Cron表達式定義任務(wù)的執(zhí)行時間,可以更靈活地控制任務(wù)的執(zhí)行時間。
具體實現(xiàn):
/** * 定時任務(wù)001:@Scheduled * springboot自帶的簡易定時任務(wù)實現(xiàn) * * @author zhupeng * @Date 2022/1/7 9:53 AM */ @Component public class ScheduleTask { private String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); // 任務(wù)間隔3s執(zhí)行依次【不包括任務(wù)執(zhí)行時間】,延遲1s后執(zhí)行 @Scheduled(initialDelay = 1000, fixedDelay = 3000) public void fixedDelay() { System.out.println("fixedDelay:" + this.date); } // 每隔間隔3s執(zhí)行依次【包括任務(wù)執(zhí)行時間】 @Scheduled(fixedRate = 3000) public void fixedRate() { System.out.println("fixedRate:" + this.date); } // cron表達式,Quartz更詳細 @Scheduled(cron = "*/5 * * * * *") public void cron() { System.out.println("cron:" + this.date); } }
Spring框架中@Scheduled注解失效問題
問題描述
在Spring框架的Web項目中,有一個業(yè)務(wù)功能需要每天執(zhí)行一次,使用了@Scheduled
注解執(zhí)行定時任務(wù),但是出現(xiàn)了定時任務(wù)不執(zhí)行的情況
嘗試的方式
類上加@EnableScheduling
注解、加實現(xiàn)SchedulingConfigurer
接口的配置類、修改cron表達式
都失敗了
最終查到的解決方式
在Spring的配置文件中,添加配置:
- 1.加命名空間
xmlns
添加:
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation
添加 :
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"
- 2.啟動注解驅(qū)動
<task:annotation-driven scheduler="dataScheduler"/>
- 3.開啟任務(wù)調(diào)度器,并配置線程池大小
<task:scheduler id="dataScheduler" pool-size="5"/>
- 4.然后就可以使用
@Scheduled
注解了
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot @Value實現(xiàn)獲取計算機中絕對路徑文件的內(nèi)容
這篇文章主要介紹了springboot @Value實現(xiàn)獲取計算機中絕對路徑文件的內(nèi)容,具有很好的參考價值,希望對大家有所幫助。2021-09-09Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié))
這篇文章主要介紹了Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-07-07JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時不能查到內(nèi)容的原因分析
這篇文章主要介紹了JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時不能查到內(nèi)容的原因分析及簡單處理方法,文中給大家介紹了javaweb中dbutils的使用,需要的朋友可以參考下2017-12-12Skywalking改成適配阿里云等帶Http?Basic的Elasticsearch服務(wù)
這篇文章主要介紹了改造Skywalking支持阿里云等帶Http?Basic的Elasticsearch服務(wù)2022-02-02SpringBoot應(yīng)用程序啟動監(jiān)聽功能的常見方法
應(yīng)用啟動監(jiān)聽在?Spring?Boot?和其他框架中扮演著重要的角色,它們的主要作用是在應(yīng)用啟動或關(guān)閉時觸發(fā)特定的操作或任務(wù),本文給大家介紹了SpringBoot應(yīng)用程序啟動監(jiān)聽功能的常見方法,需要的朋友可以參考下2024-05-05ExecutorService實現(xiàn)獲取線程返回值
這篇文章主要介紹了ExecutorService實現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08