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

spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實現(xiàn)定時任務(wù)

 更新時間:2023年06月15日 16:37:05   作者:orton777  
這篇文章主要介紹了spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實現(xiàn)定時任務(wù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在 Spring Boot 中,可以使用 @Scheduled 注解和 TaskScheduler 接口來實現(xiàn)定時任務(wù)。以下是關(guān)于如何在 Spring Boot 中創(chuàng)建定時任務(wù)的詳細說明:

  • 添加依賴

pom.xml 文件中添加 spring-boot-starter 依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
  • 啟用定時任務(wù)

在 Spring Boot 主類上添加 @EnableScheduling 注解,以啟用定時任務(wù)支持:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • 創(chuàng)建定時任務(wù)

使用 @Scheduled 注解創(chuàng)建定時任務(wù)。以下是一個簡單的定時任務(wù)示例:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
public class ScheduledTask {
    @Scheduled(fixedRate = 5000)
    public void fixedRateTask() {
        System.out.println("Fixed rate task executed at " + LocalDateTime.now());
    }
    @Scheduled(fixedDelay = 5000)
    public void fixedDelayTask() {
        System.out.println("Fixed delay task executed at " + LocalDateTime.now());
    }
    @Scheduled(cron = "0 * * * * ?")
    public void cronTask() {
        System.out.println("Cron task executed at " + LocalDateTime.now());
    }
}

在這個示例中,我們創(chuàng)建了三個定時任務(wù):

  • fixedRateTask:使用 fixedRate 屬性,每隔 5000 毫秒(5 秒)執(zhí)行一次。
  • fixedDelayTask:使用 fixedDelay 屬性,在上一次任務(wù)完成后等待 5000 毫秒(5 秒)再執(zhí)行。
  • cronTask:使用 cron 屬性,根據(jù) Cron 表達式執(zhí)行任務(wù)。在這個例子中,任務(wù)將在每分鐘的整數(shù)秒執(zhí)行。
  • 使用 TaskScheduler 接口

除了使用 @Scheduled 注解,你還可以使用 TaskScheduler 接口來創(chuàng)建定時任務(wù)。以下是一個使用 TaskScheduler 的示例:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import java.time.LocalDateTime;
@Configuration
public class SchedulerConfig {
    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        taskScheduler.setPoolSize(5);
        return taskScheduler;
    }
    @Bean
    public Runnable exampleTask() {
        return () -> System.out.println("Task executed at " + LocalDateTime.now());
    }
    @Bean
    public ScheduledTaskRegistrar scheduledTaskRegistrar(TaskScheduler taskScheduler, Runnable exampleTask) {
        ScheduledTaskRegistrar taskRegistrar = new ScheduledTaskRegistrar();
        taskRegistrar.setTaskScheduler(taskScheduler);
        taskRegistrar.addFixedRateTask(exampleTask, 5000);
        return taskRegistrar;
    }
}

在這個示例中,我們創(chuàng)建了一個 TaskScheduler Bean,配置了一個線程池大小為 5 的 ThreadPoolTaskScheduler。然后,我們創(chuàng)建了一個簡單的 Runnable 任務(wù),并使用 ScheduledTaskRegistrar 將任務(wù)注冊到 TaskScheduler。這個任務(wù)將以固定的速率(每隔 5000 毫秒)執(zhí)行。

這就是在 Spring Boot 中創(chuàng)建定時任務(wù)的詳細說明。你可以根據(jù)自己的需求調(diào)整任務(wù)的執(zhí)行頻率和邏輯。

到此這篇關(guān)于spring boot 使用 @Scheduled 注解和 TaskScheduler 接口實現(xiàn)定時任務(wù)的文章就介紹到這了,更多相關(guān)spring boot 定時任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea顯示properties文件中文亂碼的解決方法

    idea顯示properties文件中文亂碼的解決方法

    在項目中通常會遇到如下問題,突然properties文件中文亂碼,本文主要介紹了idea顯示properties文件中文亂碼的解決方法,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 詳細分析Java內(nèi)存模型

    詳細分析Java內(nèi)存模型

    Java虛擬機規(guī)范中定義了Java內(nèi)存模型(Java Memory Model,JMM),用于屏蔽掉各種硬件和操作系統(tǒng)的內(nèi)存訪問差異,以實現(xiàn)讓Java程序在各種平臺下都能達到一致的并發(fā)效果,JMM規(guī)范了Java虛擬機與計算機內(nèi)存是如何協(xié)同工作的,以及在必須時如何同步的訪問共享變量
    2021-06-06
  • java實現(xiàn)簡單的客戶信息管理系統(tǒng)

    java實現(xiàn)簡單的客戶信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java中的動態(tài)數(shù)組和棧Vector Stack使用區(qū)別介紹

    Java中的動態(tài)數(shù)組和棧Vector Stack使用區(qū)別介紹

    這篇文章主要為大家介紹了Java中的動態(tài)數(shù)組和棧Vector Stack使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Spring Cloud實現(xiàn)提供API給客戶端的方法詳解

    Spring Cloud實現(xiàn)提供API給客戶端的方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Cloud實現(xiàn)提供API給客戶端的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Java由淺入深全面講解方法的使用

    Java由淺入深全面講解方法的使用

    方法,也稱函數(shù),如果想要重復(fù)一段或者多段代碼塊的使用,可以將這些代碼封裝成一個方法,方法具體表現(xiàn)為某種行為,使用方法可以提高代碼的復(fù)用性
    2022-04-04
  • Springboot處理跨域的實現(xiàn)方式(附Demo)

    Springboot處理跨域的實現(xiàn)方式(附Demo)

    這篇文章主要介紹了Springboot處理跨域的實現(xiàn)方式(附Demo),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • java == 引發(fā)的線上異常詳解

    java == 引發(fā)的線上異常詳解

    這篇文章主要介紹了java == 引發(fā)的線上異常,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot之Refresh流程的簡單說明

    SpringBoot之Refresh流程的簡單說明

    這篇文章主要介紹了SpringBoot之Refresh流程的簡單說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中的分布式鎖與同步鎖使用詳解

    Java中的分布式鎖與同步鎖使用詳解

    這篇文章主要介紹了Java中的分布式鎖與同步鎖使用詳解,在分布式系統(tǒng)中,由于存在多個節(jié)點并行執(zhí)行任務(wù),可能會出現(xiàn)競爭條件和數(shù)據(jù)不一致的問題,分布式鎖通過約束同一時刻只有一個節(jié)點能夠獲得鎖的方式,確保了對共享資源的獨占訪問,需要的朋友可以參考下
    2023-07-07

最新評論