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

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)文章

  • Spring-Validation 后端數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)

    Spring-Validation 后端數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)

    這篇文章主要介紹了Spring-Validation 后端數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • struts1實(shí)現(xiàn)簡(jiǎn)單的登錄功能實(shí)例(附源碼)

    struts1實(shí)現(xiàn)簡(jiǎn)單的登錄功能實(shí)例(附源碼)

    本篇文章主要介紹了struts1實(shí)現(xiàn)簡(jiǎn)單的登錄功能實(shí)例(附源碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • java 中Comparable與Comparator詳解與比較

    java 中Comparable與Comparator詳解與比較

    這篇文章主要介紹了java 中Comparable與Comparator詳解與比較的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • java使用MulticastSocket實(shí)現(xiàn)組播

    java使用MulticastSocket實(shí)現(xiàn)組播

    這篇文章主要為大家詳細(xì)介紹了java使用MulticastSocket實(shí)現(xiàn)組播,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • eclipse怎么引入spring boot項(xiàng)目插件的方法

    eclipse怎么引入spring boot項(xiàng)目插件的方法

    這篇文章主要介紹了eclipse怎么引入spring boot項(xiàng)目插件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 關(guān)于java開發(fā)的性能問題總結(jié)(必看)

    關(guān)于java開發(fā)的性能問題總結(jié)(必看)

    下面小編就為大家?guī)硪黄P(guān)于java開發(fā)的性能問題總結(jié)(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java將一個(gè)正整數(shù)分解質(zhì)因數(shù)的代碼

    Java將一個(gè)正整數(shù)分解質(zhì)因數(shù)的代碼

    這篇文章主要介紹了將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5,需要的朋友可以參考下
    2017-02-02
  • SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    我們知道內(nèi)存讀取速度遠(yuǎn)大于硬盤讀取速度,當(dāng)需要重復(fù)獲取相同數(shù)據(jù)時(shí),一次一次的請(qǐng)求數(shù)據(jù)庫(kù)或者遠(yuǎn)程服務(wù),導(dǎo)致在數(shù)據(jù)庫(kù)查詢或者遠(yuǎn)程方法調(diào)用上小號(hào)大量的時(shí)間,最終導(dǎo)致程序性能降低,這就是數(shù)據(jù)緩存要解決的問題,學(xué)過計(jì)算機(jī)組成原理或者操作系統(tǒng)的同學(xué)們應(yīng)該比較熟悉
    2022-10-10
  • java 中內(nèi)部類的實(shí)例詳解

    java 中內(nèi)部類的實(shí)例詳解

    這篇文章主要介紹了java 中內(nèi)部類的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 基于java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng)

    基于java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng)

    這篇文章主要介紹了基于java實(shí)現(xiàn)簡(jiǎn)單的銀行管理系統(tǒng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論