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

老生常談spring?boot中的定時(shí)任務(wù)

 更新時(shí)間:2024年05月21日 09:29:29   作者:Hanyta  
SpringBoot中的定時(shí)任務(wù)主要通過(guò)@Scheduled注解以及SchedulingConfigurer接口實(shí)現(xiàn),本文給大家介紹spring?boot中的定時(shí)任務(wù),感興趣的朋友跟隨小編一起看看吧
  • SpringBoot中的定時(shí)任務(wù)主要通過(guò)@Scheduled注解以及SchedulingConfigurer接口實(shí)現(xiàn)。

  • @Scheduled注解是Spring提供的一個(gè)注解,用于標(biāo)記方法作為定時(shí)任務(wù)執(zhí)行:配置方法在指定的時(shí)間間隔或時(shí)間點(diǎn)執(zhí)行,實(shí)現(xiàn)各種定時(shí)任務(wù)需求。
//在你需要定時(shí)的方法上加上@Scheduled注解,并用corn表達(dá)式指定如何定時(shí),下式表達(dá)了每隔15秒執(zhí)行一次方法
@Scheduled(cron = "*/15 * * * * ?")
public void hello() {
    System.out.println("hello執(zhí)行了");
}
  • 但是要記得在啟動(dòng)類上開(kāi)啟定時(shí)功能:@EnableScheduling // 開(kāi)啟定時(shí)任務(wù)功能

  • @Scheduled任務(wù)在單線程環(huán)境下執(zhí)行,可能出現(xiàn)任務(wù)堆積的情況,尤其在任務(wù)量大或任務(wù)執(zhí)行時(shí)間長(zhǎng)的情況下,而且這些任務(wù)可能會(huì)變得混亂和難以管理。定時(shí)任務(wù)的配置分散在各個(gè)任務(wù)方法中,不利于統(tǒng)一管理和維護(hù)。對(duì)于需要根據(jù)動(dòng)態(tài)條件創(chuàng)建或銷毀定時(shí)任務(wù)的情況,@Scheduled注解也無(wú)法滿足需求。

  • 使用SchedulingConfigurer接口來(lái)動(dòng)態(tài)地創(chuàng)建和管理定時(shí)任務(wù)。通過(guò)實(shí)現(xiàn) SchedulingConfigurer 接口,我們可以編寫(xiě)代碼來(lái)動(dòng)態(tài)地注冊(cè)和管理定時(shí)任務(wù),從而實(shí)現(xiàn)靈活的任務(wù)調(diào)度需求。SchedulingConfigurer 接口是 Spring 提供的一個(gè)用于定時(shí)任務(wù)配置的擴(kuò)展接口,它允許開(kāi)發(fā)人員更細(xì)粒度地控制定時(shí)任務(wù)的執(zhí)行。通過(guò)實(shí)現(xiàn)SchedulingConfigurer接口,可以自定義任務(wù)調(diào)度器(TaskScheduler),配置線程池等參數(shù),以滿足不同場(chǎng)景下的定時(shí)任務(wù)需求。
@Configuration  
@EnableScheduling  
public class CustomSchedulingConfig implements SchedulingConfigurer {
	@Override  
	public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
		// 定時(shí)任務(wù)邏輯
	}
}
  • 通過(guò)實(shí)現(xiàn)SchedulingConfigurer接口,重寫(xiě)configureTasks方法,自定義任務(wù)調(diào)度器的配置。此外我們還可以配置線程池,用于控制定時(shí)任務(wù)執(zhí)行時(shí)的線程數(shù)量、并發(fā)性等參數(shù)。
@Bean(destroyMethod = "shutdown")  
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {  
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();  
    scheduler.setPoolSize(5); // 設(shè)置線程池大小  
    scheduler.setThreadNamePrefix("scheduled-task-"); // 設(shè)置線程名稱前綴  
    scheduler.setAwaitTerminationSeconds(60); // 設(shè)置終止等待時(shí)間  
	// 設(shè)置處理拒絕執(zhí)行的任務(wù)異常
	scheduler.setRejectedExecutionHandler((r, executor) -> log.error("Task rejected", r));
	// 處理定時(shí)任務(wù)執(zhí)行過(guò)程中拋出的未捕獲異常
	scheduler.setErrorHandler(e -> log.error("Error in scheduled task", e));
    return scheduler;  
}
//然后將自定義的ThreadPoolTaskScheduler設(shè)置到ScheduledTaskRegistrar中去:
@Override  
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
	// 定時(shí)任務(wù)邏輯
	taskRegistrar.setTaskScheduler(threadPoolTaskScheduler());
}
//通過(guò)SchedulingConfigurer接口,可以更靈活地配置任務(wù)調(diào)度器和定時(shí)任務(wù)的執(zhí)行規(guī)則,比如動(dòng)態(tài)注冊(cè)定時(shí)任務(wù)、動(dòng)態(tài)修改任務(wù)執(zhí)行規(guī)則等。

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

相關(guān)文章

  • Visual?Studio?Code配置Tomcat運(yùn)行Java?Web項(xiàng)目詳細(xì)步驟

    Visual?Studio?Code配置Tomcat運(yùn)行Java?Web項(xiàng)目詳細(xì)步驟

    VS Code是一款非常棒的文本編輯器,具有配置簡(jiǎn)單、功能豐富、輕量簡(jiǎn)潔的特點(diǎn),并且極其適合處理中小規(guī)模的代碼,這篇文章主要給大家介紹了關(guān)于Visual?Studio?Code配置Tomcat運(yùn)行Java?Web項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下
    2023-11-11
  • java8中定時(shí)任務(wù)最佳實(shí)現(xiàn)方式(實(shí)現(xiàn)原理)

    java8中定時(shí)任務(wù)最佳實(shí)現(xiàn)方式(實(shí)現(xiàn)原理)

    這篇文章主要介紹了java8中定時(shí)任務(wù)最佳實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-12-12
  • SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶信息

    SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶信息

    這篇文章主要介紹了SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶信息,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下
    2021-04-04
  • JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法

    JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法

    本文主要介紹了JAVA8妙用Optional解決判斷Null為空的問(wèn)題方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    這篇文章主要介紹了Maven將代碼及依賴打成一個(gè)Jar包的方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • springboot log4j2不能打印框架錯(cuò)誤日志的解決方案

    springboot log4j2不能打印框架錯(cuò)誤日志的解決方案

    這篇文章主要介紹了springboot log4j2不能打印框架錯(cuò)誤日志的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot集成netty實(shí)現(xiàn)websocket通信功能

    SpringBoot集成netty實(shí)現(xiàn)websocket通信功能

    Netty是一個(gè)高性能、異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架,用于快速開(kāi)發(fā)可維護(hù)的高性能協(xié)議服務(wù)器和客戶端,WebSocket 是一種網(wǎng)絡(luò)通信協(xié)議,相比傳統(tǒng)的HTTP協(xié)議,本文給大家介紹了SpringBoot集成netty實(shí)現(xiàn)websocket通信功能,需要的朋友可以參考下
    2024-03-03
  • Java字節(jié)碼指令集的使用詳細(xì)

    Java字節(jié)碼指令集的使用詳細(xì)

    本篇文章對(duì)Java字節(jié)碼指令集的使用進(jìn)行了詳細(xì)的介紹。需要的朋友參考下
    2013-05-05
  • Spring中@Import的各種用法以及ImportAware接口詳解

    Spring中@Import的各種用法以及ImportAware接口詳解

    這篇文章主要介紹了Spring中@Import的各種用法以及ImportAware接口詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java創(chuàng)建線程池的幾種方式代碼示例

    Java創(chuàng)建線程池的幾種方式代碼示例

    這篇文章主要介紹了Java中創(chuàng)建線程池的四種方式,包括使用Executors類、ThreadPoolExecutor類、Future和Callable接口以及Spring的ThreadPoolTaskExecutor,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01

最新評(píng)論