欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot 中啟用定時任務的操作方法

 更新時間:2024年11月15日 09:33:15   作者:種樹人20240819  
文章主要介紹了如何在Spring Boot中啟用定時任務,包括使用@EnableScheduling注解、配置項控制定時任務是否開啟以及如何關閉cron定時任務,感興趣的朋友跟隨小編一起看看吧

添加 @EnableScheduling 注解

可以添加在 Application 類上

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

定義定時任務類和方法

定時任務類要注冊為Spring IoC 容器的 Bean,或者通過 @Bean 將某個方法的返回值(返回值為定時任務類對象)注冊為 Spring IoC 的Bean。

package com.cmcc.nlpt.sitemessage.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTask {
    /**
     * 每日0點執(zhí)行
     */
    @Scheduled (cron = "0 0 0 * * ?")
    public void doCronTask() {
    }
    /**
     * 本次任務結(jié)束到下次任務開始的時間間隔為5秒
     */
    @Scheduled (fixedDelay = 5000)
    public void doFixedDelayTask() {
    }
    /**
     * 兩次任務開始時間間間隔為5秒
     */
    @Scheduled(fixedRate = 5000)
    public void doFixedRateTask() {
    }
    /**
     * 第一次任務啟動延時1秒,后續(xù)任務結(jié)束到下次任務開始的時間間隔為5秒
     */
    @Scheduled(initialDelay = 1000, fixedDelay = 5000)
    public void doInitialDelayTask() {
    }
}

通過配置項控制定時任務是否開啟

方法一 @ConditionalOnProperty

此方法是控制任務類是否注冊為 Spring IoC 的 Bean,可以控制上述所有類型的定時任務是否注冊。

# enabled 配置為 false 時定時任務就不會開啟
scheduled-task:
  enabled: true
@Component
@ConditionalOnProperty(name = "scheduled-task.enabled", havingValue = "true")
public class ScheduledTask {
    /**
     * 每日0點執(zhí)行
     */
    @Scheduled (cron = "0 0 0 * * ?")
    public void doCronTask() {
    }
    /**
     * 本次任務結(jié)束到下次任務開始的時間間隔為5秒
     */
    @Scheduled (fixedDelay = 5000)
    public void doFixedDelayTask() {
    }
    /**
     * 兩次任務開始時間間間隔為5秒
     */
    @Scheduled(fixedRate = 5000)
    public void doFixedRateTask() {
    }
    /**
     * 第一次任務啟動延時1秒,后續(xù)任務結(jié)束到下次任務開始的時間間隔為5秒
     */
    @Scheduled(initialDelay = 1000, fixedDelay = 5000)
    public void doInitialDelayTask() {
    }
}

方法二 Boolean 標志位

使用此方法定時任務還是會被調(diào)度執(zhí)行,只是在任務執(zhí)行時什么都不做,也可以控制上述所有類型的定時任務。

scheduled-task:
  enabled: true
@Component
@ConditionalOnProperty(name = "scheduled-task.enabled", havingValue = "true")
public class ScheduledTask {
    @Value("${scheduled-task.enabled}")
    private Boolean taskEnabled;
    @Scheduled (fixedDelay = 5000)
    public void doFixedDelayTask() {
        if (!taskEnabled) {
            return;
        }
        System.out.println("start to doFixedDelayTask");
    }
}

使用"-"使 cron 定時任務關閉

此方法只適用于 cron 類型的定時任務,不適用于其它類型的定時任務。

注意:yml 文件中配置 - 時要加上雙引號或單引號,否則會報錯。

關閉 cron 定時任務的配置:

scheduled-task:
  cron: "-"

開始 cron 定時任務的配置,將 cron 表達式配置上即可:

scheduled-task:
  cron: 0 0 0 * * ?
@Component
public class ScheduledTask {
    /**
     * 每日0點執(zhí)行
     */
    @Scheduled (cron = "${scheduled-task.cron}")
    public void doCronTask() {
    }
}

參考資料

到此這篇關于如何在 Spring Boot 中啟用定時任務的文章就介紹到這了,更多相關Spring Boot啟用定時任務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java實現(xiàn)FTP文件的上傳和下載功能的實例代碼

    Java實現(xiàn)FTP文件的上傳和下載功能的實例代碼

    FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”。接下來通過本文給大家實例講解Java實現(xiàn)FTP文件的上傳和下載功能,需要的的朋友一起看看吧
    2016-11-11
  • java 實現(xiàn)數(shù)組擴容與縮容案例

    java 實現(xiàn)數(shù)組擴容與縮容案例

    這篇文章主要介紹了java 實現(xiàn)數(shù)組擴容與縮容案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Spring Shell 命令行實現(xiàn)交互式Shell應用開發(fā)

    Spring Shell 命令行實現(xiàn)交互式Shell應用開發(fā)

    本文主要介紹了Spring Shell 命令行實現(xiàn)交互式Shell應用開發(fā),能夠幫助開發(fā)者快速構(gòu)建功能豐富的命令行應用程序,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Java的MoreSuppliers工具類方法解析

    Java的MoreSuppliers工具類方法解析

    這篇文章主要介紹了Java的MoreSuppliers工具類方法解析,MoreSuppliers類是一個Java工具類,它提供了一些增強的Supplier函數(shù),使得Supplier執(zhí)行的結(jié)果可以被緩存,真正的調(diào)用只執(zhí)行一次,需要的朋友可以參考下
    2024-01-01
  • Java多線程中停止線程遇到線程阻塞的處理方法詳解

    Java多線程中停止線程遇到線程阻塞的處理方法詳解

    這篇文章主要介紹了Java多線程中停止線程遇到線程阻塞的處理方法詳解,在阻塞狀態(tài)下,線程會釋放CPU資源,從而允許其他線程執(zhí)行,線程阻塞是實現(xiàn)多線程編程中重要的概念,可以提高程序的效率和資源利用率,需要的朋友可以參考下
    2023-10-10
  • Spring Boot利用@Async異步調(diào)用:使用Future及定義超時詳解

    Spring Boot利用@Async異步調(diào)用:使用Future及定義超時詳解

    這篇文章主要給大家介紹了關于Spring Boot利用@Async異步調(diào)用:使用Future及定義超時的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友可以參考下
    2018-05-05
  • 使用SpringDataJpa創(chuàng)建中間表

    使用SpringDataJpa創(chuàng)建中間表

    這篇文章主要介紹了使用SpringDataJpa創(chuàng)建中間表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • springboot+redis實現(xiàn)微博熱搜排行榜的示例代碼

    springboot+redis實現(xiàn)微博熱搜排行榜的示例代碼

    本文主要介紹了springboot+redis實現(xiàn)微博熱搜排行榜的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • MyBatis查詢緩存實例詳解

    MyBatis查詢緩存實例詳解

    查詢緩存的使用,主要是為了提高查詢訪問速度。這篇文章主要介紹了MyBatis查詢緩存,需要的朋友可以參考下
    2017-06-06
  • 一文徹底弄懂spring?boot自動配置的過程(推薦)

    一文徹底弄懂spring?boot自動配置的過程(推薦)

    SpringBoot的自動配置機制通過@SpringBootApplication注解作為起點,結(jié)合@EnableAutoConfiguration和spring.factories文件,實現(xiàn)了基于類路徑依賴、環(huán)境配置和自定義代碼的智能化配置,感興趣的朋友跟隨小編一起看看吧
    2024-10-10

最新評論