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

Spring中自帶的@Schedule實現(xiàn)自動任務的過程解析

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

SpringBoot中自帶了一個能夠實現(xiàn)定時任務的注解@Schedule
如果定時任務比較簡單,則可以使用SpringBoot中自帶的@Schedule,但是如果任務調度很復雜的話,就建議使用Quartz組件了。
說一下這個@Schedule注解怎么用?

基本使用

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

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

關于Cron表達式,可以自己學習,
寫cron表達式是一件麻煩的事情,就像寫正則表達式似的
建議使用工具來生成cron表達式
在線Cron表達式生成器

2.在配置類上通過@EnableScheduling開啟定時任務配置,開啟了此配置后,SpringBoot會自動掃描容器中帶有@Schedule注解
注意:將包含@Schedule標注的方法所在的類,設置為Component或Configuration,要讓SpringBoot知道這個類

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

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

多線程執(zhí)行

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

@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秒鐘了");  
	}  
}

看控制臺這兩個任務的執(zhí)行情況:

如果想要為每一個任務單獨開一個線程,異步化操作,效率能提高,不會被阻塞。
此時需要自定義線程池,看操作!

自定義配置類

@Configuration  
@EnableScheduling  
public class ScheduledConfig implements SchedulingConfigurer {  
	/**  
	* 任務執(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)建任務線程池  
		ThreadPoolTaskScheduler taskPool = new ThreadPoolTaskScheduler();  
		// 設置線程池大小  
		taskPool.setPoolSize(TASK_POOL_SIZE);  
		// 線程前綴名  
		taskPool.setThreadNamePrefix(TASK_THREAD_PREFIX);  
		// 初始化  
		taskPool.initialize();  
		scheduledTaskRegistrar.setTaskScheduler(taskPool);  
	}  
}

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

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

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

相關文章

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

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

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

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

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

    java 中Comparable與Comparator詳解與比較

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

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

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

    eclipse怎么引入spring boot項目插件的方法

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

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

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

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

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

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

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

    java 中內部類的實例詳解

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

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

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

最新評論