亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot多線程與任務(wù)調(diào)度總結(jié)

 更新時間:2023年12月29日 08:28:34   作者:奮力向前123  
多線程與任務(wù)調(diào)度是java開發(fā)中必須掌握的技能,本文主要介紹了SpringBoot多線程與任務(wù)調(diào)度總結(jié),具有一定的參考價值,感興趣的可以了解一下

一、前言

多線程與任務(wù)調(diào)度是java開發(fā)中必須掌握的技能,在springBoot的開發(fā)中,多線程和任務(wù)調(diào)度變得越來越簡單。實現(xiàn)方式可以通過實現(xiàn)ApplicationRunner接口,重新run的方法實現(xiàn)多線程。任務(wù)調(diào)度則可以使用@Scheduled注解

二、使用示例

@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class ToolServiceThread implements ApplicationRunner {

	@Autowired
	private TmpMUserService tmpMUserService;

	@Override
	public void run(ApplicationArguments args) throws Exception {
		log.info("開啟線程.....,");

		// 處理用戶手機號
		// tmpMUserService.updateOne();

	}

	/**
	 * 定時任務(wù) 早上0點10分
	 */
	// @Scheduled(cron = "0 10 0 * * ?")
   @Scheduled(cron = "0 0/10 * * * ?") // 每10分鐘刷新
	public void hotelTask() throws Exception {

	}

}

三、java定時任務(wù)多種實現(xiàn)方式

  • 使用java.util.Timer類

import java.util.Timer;  
import java.util.TimerTask;  
  
public class TimerExample {  
    public static void main(String[] args) {  
        Timer timer = new Timer();  
        TimerTask task = new TimerTask() {  
            @Override  
            public void run() {  
                System.out.println("執(zhí)行定時任務(wù)!");  
            }  
        };  
        // 延遲5秒后開始執(zhí)行任務(wù),然后每隔2秒執(zhí)行一次  
        timer.schedule(task, 5000, 2000);  
    }  
}

2.使用ScheduledExecutorService

ScheduledExecutorService 是Java 5及以上版本中提供的一個更加強大和靈活的定時任務(wù)執(zhí)行器。

import java.util.concurrent.Executors;  
import java.util.concurrent.ScheduledExecutorService;  
import java.util.concurrent.TimeUnit;  
  
public class ScheduledExecutorExample {  
    public static void main(String[] args) {  
        ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();  
        executor.scheduleAtFixedRate(() -> {  
            System.out.println("執(zhí)行定時任務(wù)!");  
        }, 5, 2, TimeUnit.SECONDS); // 延遲5秒后開始執(zhí)行,然后每隔2秒執(zhí)行一次  
    }  
}

3.使用Spring的@Scheduled注解 (適用于Spring Boot應(yīng)用)

如果你正在使用Spring Boot,你可以使用@Scheduled注解來輕松地實現(xiàn)定時任務(wù)。首先,確保你的Spring Boot應(yīng)用已經(jīng)啟用了定時任務(wù)支持:在主類上添加@EnableScheduling注解。然后,你可以在方法上添加@Scheduled注解來指定任務(wù)的執(zhí)行計劃。

import org.springframework.scheduling.annotation.EnableScheduling;  
import org.springframework.scheduling.annotation.Scheduled;  
import org.springframework.stereotype.Component;  
  
@Component  
@EnableScheduling  
public class ScheduledTasks {  
    @Scheduled(fixedRate = 5000) // 每隔5秒執(zhí)行一次  
    public void doSomething() {  
        System.out.println("執(zhí)行定時任務(wù)!");  
    }  
}

四、java定時任務(wù)應(yīng)用場景

  • 定時發(fā)送通知:在企業(yè)管理系統(tǒng)中,可以設(shè)置定時任務(wù),定期向員工發(fā)送通知,例如會議提醒、任務(wù)更新等。
  • 定時執(zhí)行報表生成:在財務(wù)或銷售部門,可以設(shè)置定時任務(wù),定期生成報表,例如每日銷售報表、月度財務(wù)報表等。
  • 定時處理訂單:在電商或物流系統(tǒng)中,可以設(shè)置定時任務(wù),自動處理訂單狀態(tài),例如發(fā)貨、確認(rèn)收貨等。
  • 定時清理緩存:對于使用緩存的系統(tǒng),定時清理過期或無效的緩存可以提高系統(tǒng)的性能和穩(wěn)定性。
  • 定時備份數(shù)據(jù)庫:類似于其他語言中的例子,Java 程序也可以設(shè)置定時任務(wù),定期備份數(shù)據(jù)庫數(shù)據(jù)。
  • 定時啟動或停止服務(wù):在服務(wù)器管理中,可以設(shè)置定時任務(wù),自動啟動或停止服務(wù),例如在夜間關(guān)閉一些非必要的服務(wù)以節(jié)省資源。
  • 定時發(fā)送郵件或短信:Java 程序可以與郵件或短信服務(wù)集成,定時發(fā)送郵件或短信通知,例如會議提醒、生日祝福等。
  • 定時執(zhí)行批處理任務(wù):對于需要批量處理數(shù)據(jù)的場景,可以設(shè)置定時任務(wù),自動執(zhí)行批處理任務(wù),例如數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出等。

到此這篇關(guān)于SpringBoot多線程與任務(wù)調(diào)度總結(jié)的文章就介紹到這了,更多相關(guān)SpringBoot多線程與任務(wù)調(diào)度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Security 構(gòu)建rest服務(wù)實現(xiàn)rememberme 記住我功能

    Spring Security 構(gòu)建rest服務(wù)實現(xiàn)rememberme 記住我功能

    這篇文章主要介紹了Spring Security 構(gòu)建rest服務(wù)實現(xiàn)rememberme 記住我功能,需要的朋友可以參考下
    2018-03-03
  • Springboot中動態(tài)語言groovy介紹

    Springboot中動態(tài)語言groovy介紹

    Apache的Groovy是Java平臺上設(shè)計的面向?qū)ο缶幊陶Z言,這門動態(tài)語言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺的腳本語言使用,這篇文章主要介紹了springboot中如何使用groovy,需要的朋友可以參考下
    2022-09-09
  • 聊聊Lombok中的@Builder注解使用教程

    聊聊Lombok中的@Builder注解使用教程

    @Builder注解的作用主要是用來生成對象,并且可以為對象鏈?zhǔn)劫x值。接下來通過本文給大家介紹Lombok中的@Builder注解使用教程,感興趣的朋友一起看看吧
    2021-11-11
  • 詳解Java如何優(yōu)雅地書寫if-else

    詳解Java如何優(yōu)雅地書寫if-else

    在日常開發(fā)中我們常常遇到有多個if?else的情況,之間書寫顯得代碼冗余難看,對于追求更高質(zhì)量代碼的同學(xué),就會思考如何優(yōu)雅地處理這種代碼。本文我們就來探討下幾種優(yōu)化if?else的方法
    2022-08-08
  • spring依賴注入知識點分享

    spring依賴注入知識點分享

    在本篇文章里小編給大家整理的是關(guān)于spring依賴注入知識點以及相關(guān)代碼內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • Java String 字符串常量池解析

    Java String 字符串常量池解析

    這篇文章主要介紹了Java String 字符串常量池解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java 歸并排序的實例詳解

    java 歸并排序的實例詳解

    這篇文章主要介紹了java 歸并排序的實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Spring Boot快速入門教程

    Spring Boot快速入門教程

    本篇文章主要介紹了Spring Boot快速入門教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Java語言實現(xiàn)基數(shù)排序代碼分享

    Java語言實現(xiàn)基數(shù)排序代碼分享

    這篇文章主要介紹了Java語言實現(xiàn)基數(shù)排序代碼分享,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Spring如何在一個事務(wù)中開啟另一個事務(wù)

    Spring如何在一個事務(wù)中開啟另一個事務(wù)

    這篇文章主要介紹了Spring如何在一個事務(wù)中開啟另一個事務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01

最新評論