定時任務(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表達(dá)式定義任務(wù)的執(zhí)行時間,可以更靈活地控制任務(wù)的執(zhí)行時間。
具體實(shí)現(xiàn):
/**
* 定時任務(wù)001:@Scheduled
* springboot自帶的簡易定時任務(wù)實(shí)現(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表達(dá)式,Quartz更詳細(xì)
@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注解、加實(shí)現(xiàn)SchedulingConfigurer接口的配置類、修改cron表達(dá)式
都失敗了
最終查到的解決方式
在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實(shí)現(xiàn)獲取計算機(jī)中絕對路徑文件的內(nèi)容
這篇文章主要介紹了springboot @Value實(shí)現(xiàn)獲取計算機(jī)中絕對路徑文件的內(nèi)容,具有很好的參考價值,希望對大家有所幫助。2021-09-09
Java實(shí)現(xiàn)AOP面向切面編程的實(shí)例教程
這篇文章主要介紹了Java實(shí)現(xiàn)AOP面向切面編程的實(shí)例教程,通常Java中的AOP都是利用Spring框架中造好的輪子來開發(fā),而本文則關(guān)注于Java本身AOP的設(shè)計模式實(shí)現(xiàn),需要的朋友可以參考下2016-04-04
Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié))
這篇文章主要介紹了Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-07-07
JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時不能查到內(nèi)容的原因分析
這篇文章主要介紹了JavaWeb dbutils執(zhí)行sql命令并遍歷結(jié)果集時不能查到內(nèi)容的原因分析及簡單處理方法,文中給大家介紹了javaweb中dbutils的使用,需要的朋友可以參考下2017-12-12
Skywalking改成適配阿里云等帶Http?Basic的Elasticsearch服務(wù)
這篇文章主要介紹了改造Skywalking支持阿里云等帶Http?Basic的Elasticsearch服務(wù)2022-02-02
SpringBoot應(yīng)用程序啟動監(jiān)聽功能的常見方法
應(yīng)用啟動監(jiān)聽在?Spring?Boot?和其他框架中扮演著重要的角色,它們的主要作用是在應(yīng)用啟動或關(guān)閉時觸發(fā)特定的操作或任務(wù),本文給大家介紹了SpringBoot應(yīng)用程序啟動監(jiān)聽功能的常見方法,需要的朋友可以參考下2024-05-05
ExecutorService實(shí)現(xiàn)獲取線程返回值
這篇文章主要介紹了ExecutorService實(shí)現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08

