最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Task實(shí)現(xiàn)定時(shí)任務(wù)的示例

 更新時(shí)間:2026年04月08日 08:44:13   作者:Zzxy  
定時(shí)任務(wù)的是按照指定的時(shí)間或時(shí)間間隔,自動(dòng)執(zhí)行的任務(wù),?在應(yīng)用程序中通常用于自動(dòng)化處理一些定期或周期性的操作,特別是與時(shí)間相關(guān)的任務(wù),本文就來(lái)詳細(xì)的介紹一下Spring?Task實(shí)現(xiàn)定時(shí)任務(wù)的示例,感興趣的可以了解一下

1、Spring 定時(shí)任務(wù)

定時(shí)任務(wù)Scheduled Task)指的是按照指定的時(shí)間或時(shí)間間隔,自動(dòng)執(zhí)行的任務(wù)。

在應(yīng)用程序中通常用于自動(dòng)化處理一些定期或周期性的操作,特別是與時(shí)間相關(guān)的任務(wù)。

應(yīng)用場(chǎng)景

  • 數(shù)據(jù)統(tǒng)計(jì)與報(bào)表生成
  • 緩存清理與刷新:自動(dòng)清理過(guò)期數(shù)據(jù)
  • 數(shù)據(jù)同步與備份
  • 系統(tǒng)監(jiān)控與告警
  • 消息發(fā)送與通知:自動(dòng)發(fā)送郵件

1.1 執(zhí)行方式

  • 固定間隔執(zhí)行

    • 使用 fixedRate 或 fixedDelay
    • fixedRate: 每隔固定時(shí)間執(zhí)行一次(開(kāi)始時(shí)間到開(kāi)始時(shí)間)
    • fixedDelay: 上一次任務(wù)完成后延遲固定時(shí)間再執(zhí)行
  • Cron 表達(dá)式執(zhí)行

    • 使用 cron 表達(dá)式,可以精確控制執(zhí)行時(shí)間(每天、每周、每月等)
    • 表達(dá)式格式:秒 分 時(shí) 日 月 星期
  • 觸發(fā)器任務(wù)

    • Spring 還支持基于觸發(fā)器(Trigger)的復(fù)雜任務(wù)調(diào)度,可以動(dòng)態(tài)控制下次執(zhí)行時(shí)間

2、定時(shí)任務(wù) Spring Task 實(shí)現(xiàn)

2.1 開(kāi)啟定時(shí)任務(wù)

引入 Spring 的定時(shí)任務(wù)依賴:Spring Boot 中啟用定時(shí)任務(wù)添加 @EnableScheduling 注解

@SpringBootApplication
@MapperScan("com.hospital.mapper")
@EnableCaching
@EnableScheduling  // 開(kāi)啟定時(shí)任務(wù)
public class SpringBootSystemApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootSystemApplication.class, args);
    }
}

2.2 創(chuàng)建定時(shí)任務(wù)類

使用 @Scheduled 注解來(lái)定義執(zhí)行周期和任務(wù),創(chuàng)建AppointmentTask,實(shí)現(xiàn)自動(dòng)取消過(guò)期預(yù)約

package com.example.task;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.example.entity.Appointment;
import com.example.mapper.AppointmentMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
@Slf4j
@Component
public class AppointmentTask {
    @Autowired
    private AppointmentMapper appointmentMapper;
    /**
     * 每天凌晨1點(diǎn)執(zhí)行,將已過(guò)期未就診的預(yù)約狀態(tài)改為"已過(guò)期"
     * cron表達(dá)式:秒 分 時(shí) 日 月 星期
     */
    @Scheduled(cron = "0 0 1 * * ?")
    public void cancelExpiredAppointments() {
        log.info("開(kāi)始執(zhí)行過(guò)期預(yù)約取消任務(wù)");
        // 獲取當(dāng)前日期之前的所有預(yù)約(預(yù)約日期小于今天)
        Date today = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
        LambdaUpdateWrapper<Appointment> wrapper = new LambdaUpdateWrapper<>();
        wrapper.lt(Appointment::getAppointmentDate, today)
               .eq(Appointment::getStatus, "已預(yù)約")
               .set(Appointment::getStatus, "已過(guò)期");
        int rows = appointmentMapper.update(null, wrapper);
        log.info("過(guò)期預(yù)約取消任務(wù)完成,共更新{}條記錄", rows);
    }
    /**
     * 測(cè)試用:每30秒執(zhí)行一次(取消后注釋)
     */
    // @Scheduled(fixedDelay = 30000)
    // public void testTask() {
    //     log.info("定時(shí)任務(wù)測(cè)試");
    // }
}

到此這篇關(guān)于Spring Task實(shí)現(xiàn)定時(shí)任務(wù)的示例的文章就介紹到這了,更多相關(guān)Spring Task 定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中關(guān)于泛型、包裝類及ArrayList的詳細(xì)教程

    Java中關(guān)于泛型、包裝類及ArrayList的詳細(xì)教程

    泛型可以在類或方法中預(yù)支地使用未知的類型。這篇文章主要介紹了Java中關(guān)于泛型、包裝類及ArrayList的詳細(xì)教程,需要的朋友可以參考下
    2021-12-12
  • java byte與base64的互轉(zhuǎn)的實(shí)現(xiàn)示例

    java byte與base64的互轉(zhuǎn)的實(shí)現(xiàn)示例

    在項(xiàng)目開(kāi)發(fā)中經(jīng)常用到,比如前端上送文件流(byte[])到后臺(tái)并轉(zhuǎn)成文件,本文主要介紹了java byte與base64的互轉(zhuǎn)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Spring Boot通過(guò)Redis實(shí)現(xiàn)防止重復(fù)提交

    Spring Boot通過(guò)Redis實(shí)現(xiàn)防止重復(fù)提交

    表單提交是一個(gè)非常常見(jiàn)的功能,如果不加控制,容易因?yàn)橛脩舻恼`操作或網(wǎng)絡(luò)延遲導(dǎo)致同一請(qǐng)求被發(fā)送多次,本文主要介紹了Spring Boot通過(guò)Redis實(shí)現(xiàn)防止重復(fù)提交,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java中的構(gòu)造方法和方法重載完整代碼

    Java中的構(gòu)造方法和方法重載完整代碼

    在Java編程中,構(gòu)造方法用于初始化對(duì)象,而方法重載允許同一個(gè)類中存在多個(gè)同名方法但參數(shù)不同,文中通過(guò)代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • 在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程

    微服務(wù)架構(gòu)已經(jīng)成為現(xiàn)代應(yīng)用開(kāi)發(fā)的熱門趨勢(shì),而Dubbo作為一款強(qiáng)大的分布式服務(wù)框架,與Spring?Boot的結(jié)合是構(gòu)建高性能微服務(wù)應(yīng)用的理想選擇,本文將詳細(xì)介紹如何在SpringBoot中無(wú)縫整合Dubbo,需要的朋友可以參考下
    2024-01-01
  • Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置詳解

    Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置詳解

    這篇文章主要給大家介紹了關(guān)于Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • maven實(shí)現(xiàn)jar包導(dǎo)入+導(dǎo)出方式

    maven實(shí)現(xiàn)jar包導(dǎo)入+導(dǎo)出方式

    這篇文章主要介紹了maven實(shí)現(xiàn)jar包導(dǎo)入+導(dǎo)出方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java面試題沖刺第十九天--數(shù)據(jù)庫(kù)(4)

    Java面試題沖刺第十九天--數(shù)據(jù)庫(kù)(4)

    這篇文章主要為大家分享了最有價(jià)值的三道關(guān)于數(shù)據(jù)庫(kù)的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring?Boot?@Autowired?@Resource屬性賦值時(shí)機(jī)探究

    Spring?Boot?@Autowired?@Resource屬性賦值時(shí)機(jī)探究

    這篇文章主要為大家介紹了Spring?Boot?@Autowired?@Resource屬性賦值時(shí)機(jī),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Springboot多種情況yml配置代碼實(shí)例

    Springboot多種情況yml配置代碼實(shí)例

    這篇文章主要介紹了Springboot多種情況yml配置代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

上犹县| 河源市| 七台河市| 孟村| 龙山县| 湘乡市| 宜都市| 昭觉县| 石泉县| 阿坝| 哈巴河县| 平江县| 嵩明县| 阿拉善右旗| 儋州市| 太湖县| 平原县| 安溪县| 蛟河市| 伽师县| 东丰县| 桃园县| 怀柔区| 宜宾县| 邹城市| 汪清县| 犍为县| 新建县| 喀什市| 淮阳县| 张家川| 陆川县| 辉南县| 英吉沙县| 利川市| 专栏| 毕节市| 建平县| 揭阳市| 长泰县| 瑞丽市|