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

Spring中自帶的@Schedule實(shí)現(xiàn)自動(dòng)任務(wù)的過程解析

 更新時(shí)間:2023年06月07日 17:13:20   作者:秋天code  
這篇文章主要介紹了關(guān)于Spring中自帶的@Schedule實(shí)現(xiàn)自動(dòng)任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

SpringBoot中自帶了一個(gè)能夠?qū)崿F(xiàn)定時(shí)任務(wù)的注解@Schedule
如果定時(shí)任務(wù)比較簡(jiǎn)單,則可以使用SpringBoot中自帶的@Schedule,但是如果任務(wù)調(diào)度很復(fù)雜的話,就建議使用Quartz組件了。
說一下這個(gè)@Schedule注解怎么用?

基本使用

1.第一步:在一個(gè)方法上使用@Schedule,標(biāo)注這個(gè)方法是一個(gè)自定義任務(wù)
通過該注解的cron屬性,指定任務(wù)的運(yùn)行規(guī)則

@Slf4j  
@Component  
public class MyTimeJob {  
	@Scheduled(cron = "0/1 * * * * *")  
	public void distanceOffDuty() {  
		log.info("現(xiàn)在是{},{}",new Date(),"~~~馬上就要下班了");  
	}
}

關(guān)于Cron表達(dá)式,可以自己學(xué)習(xí),
寫cron表達(dá)式是一件麻煩的事情,就像寫正則表達(dá)式似的
建議使用工具來生成cron表達(dá)式
在線Cron表達(dá)式生成器

2.在配置類上通過@EnableScheduling開啟定時(shí)任務(wù)配置,開啟了此配置后,SpringBoot會(huì)自動(dòng)掃描容器中帶有@Schedule注解
注意:將包含@Schedule標(biāo)注的方法所在的類,設(shè)置為Component或Configuration,要讓SpringBoot知道這個(gè)類

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

接下來啟動(dòng)程序,就可以看到自定義任務(wù)執(zhí)行了

多線程執(zhí)行

默認(rèn)情況下,我們所有自定義的任務(wù)是單線程的,多個(gè)任務(wù)之間排隊(duì)執(zhí)行。
例如,我們定義了兩個(gè)任務(wù):

@Slf4j  
@Component  
public class MyTimeJob {  
	@Scheduled(cron = "0/1 * * * * *")  
	public void distanceOffDuty() {  
		log.info("現(xiàn)在是{},{}",new Date(),"~~~馬上就要下班了");  
	}  
	@Scheduled(cron = "0/10 * * * * *")  
	public void work(){  
		log.info("又工作(摸魚)了10秒鐘了");  
	}  
}

看控制臺(tái)這兩個(gè)任務(wù)的執(zhí)行情況:

如果想要為每一個(gè)任務(wù)單獨(dú)開一個(gè)線程,異步化操作,效率能提高,不會(huì)被阻塞。
此時(shí)需要自定義線程池,看操作!

自定義配置類

@Configuration  
@EnableScheduling  
public class ScheduledConfig implements SchedulingConfigurer {  
	/**  
	* 任務(wù)執(zhí)行線程池大小  
	*/  
	private static final int TASK_POOL_SIZE = 50;  
	/**  
	* 自定義線程前綴  
	*/  
	private static final String TASK_THREAD_PREFIX = "scheduling-task-";  
	@Override  
	public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {  
		// 創(chuàng)建任務(wù)線程池  
		ThreadPoolTaskScheduler taskPool = new ThreadPoolTaskScheduler();  
		// 設(shè)置線程池大小  
		taskPool.setPoolSize(TASK_POOL_SIZE);  
		// 線程前綴名  
		taskPool.setThreadNamePrefix(TASK_THREAD_PREFIX);  
		// 初始化  
		taskPool.initialize();  
		scheduledTaskRegistrar.setTaskScheduler(taskPool);  
	}  
}

看自定義任務(wù)的執(zhí)行情況:

每次執(zhí)行任務(wù),都會(huì)在線程池中取一個(gè)線程來使用

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

相關(guān)文章

  • Java設(shè)計(jì)模式之原型模式詳細(xì)解讀

    Java設(shè)計(jì)模式之原型模式詳細(xì)解讀

    這篇文章主要介紹了Java設(shè)計(jì)模式之原型模式詳細(xì)解讀,原型模式屬于創(chuàng)建型設(shè)計(jì)模式,用于創(chuàng)建重復(fù)的對(duì)象,且同時(shí)又保證了性能,該設(shè)計(jì)模式的好處是將對(duì)象的創(chuàng)建與調(diào)用方分離,需要的朋友可以參考下
    2023-12-12
  • java中的Supplier接口解析

    java中的Supplier接口解析

    Java 8引入的Supplier接口是一個(gè)無參數(shù)函數(shù)式接口,通過get()方法延遲計(jì)算結(jié)果,它適用于按需生成場(chǎng)景,下面就來介紹一下如何使用,感興趣的可以了解一下
    2025-12-12
  • Java的Swing編程中使用SwingWorker線程模式及頂層容器

    Java的Swing編程中使用SwingWorker線程模式及頂層容器

    這篇文章主要介紹了在Java的Swing編程中使用SwingWorker線程模式及頂層容器的方法,適用于客戶端圖形化界面軟件的開發(fā),需要的朋友可以參考下
    2016-01-01
  • Spring詳細(xì)講解事務(wù)失效的場(chǎng)景

    Spring詳細(xì)講解事務(wù)失效的場(chǎng)景

    實(shí)際項(xiàng)目開發(fā)中,如果涉及到多張表操作時(shí),為了保證業(yè)務(wù)數(shù)據(jù)的一致性,大家一般都會(huì)采用事務(wù)機(jī)制,好多小伙伴可能只是簡(jiǎn)單了解一下,遇到事務(wù)失效的情況,便會(huì)無從下手,下面這篇文章主要給大家介紹了關(guān)于Spring事務(wù)失效場(chǎng)景的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 一篇文章帶你了解JavaSE的數(shù)據(jù)類型

    一篇文章帶你了解JavaSE的數(shù)據(jù)類型

    這篇文章主要給大家介紹了關(guān)于JavaSE的數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • java文件操作代碼片斷實(shí)例實(shí)現(xiàn)統(tǒng)計(jì)文件中字母出現(xiàn)的個(gè)數(shù)功能

    java文件操作代碼片斷實(shí)例實(shí)現(xiàn)統(tǒng)計(jì)文件中字母出現(xiàn)的個(gè)數(shù)功能

    本文介紹java讀文件實(shí)例,實(shí)現(xiàn)統(tǒng)計(jì)某一目錄下每個(gè)文件中出現(xiàn)的字母?jìng)€(gè)數(shù)、數(shù)字個(gè)數(shù)、空格個(gè)數(shù)及行數(shù),除此之外沒有其他字符,大家參考使用吧
    2014-01-01
  • idea中解決maven包沖突的問題(maven helper)

    idea中解決maven包沖突的問題(maven helper)

    這篇文章主要介紹了idea中解決maven包沖突的問題(maven helper),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • MyBatis連接池的深入和動(dòng)態(tài)SQL詳解

    MyBatis連接池的深入和動(dòng)態(tài)SQL詳解

    這篇文章主要介紹了MyBatis連接池的深入和動(dòng)態(tài)SQL詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 關(guān)于PreparedStatement的setObject作用及說明

    關(guān)于PreparedStatement的setObject作用及說明

    這篇文章主要介紹了關(guān)于PreparedStatement的setObject作用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Springboot?過濾器、攔截器、全局異常處理的方案處理小結(jié)

    Springboot?過濾器、攔截器、全局異常處理的方案處理小結(jié)

    攔截器是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,與過濾器類似,是Spring框架中提供的,用來動(dòng)態(tài)攔截控制器方法的執(zhí)行,這篇文章主要介紹了Springboot?過濾器、攔截器、全局異常處理,需要的朋友可以參考下
    2024-03-03

最新評(píng)論

延边| 高唐县| 沁源县| 高州市| 杨浦区| 金阳县| 凤庆县| 思茅市| 栖霞市| 运城市| 常熟市| 东宁县| 丁青县| 山西省| 高阳县| 衡阳市| 上犹县| 湛江市| 亳州市| 湘潭县| 荃湾区| 舞阳县| 彩票| 祁门县| 贵港市| 社会| 兴仁县| 邢台市| 阿鲁科尔沁旗| 鹤庆县| 苍山县| 丰宁| 武乡县| 卓尼县| 昌平区| 刚察县| 富蕴县| 揭西县| 东海县| 宣城市| 玛曲县|