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

解決多個@Scheduled定時任務(wù)執(zhí)行時個別不執(zhí)行問題

 更新時間:2024年08月02日 15:19:03   作者:在代碼的路上奔跑  
這篇文章主要介紹了解決多個@Scheduled定時任務(wù)執(zhí)行時個別不執(zhí)行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

多個@Scheduled定時任務(wù)執(zhí)行時個別不執(zhí)行

原因

項目在啟動時,如果沒有指定線程池的大小,默認(rèn)會創(chuàng)建核心線程數(shù)為1的默認(rèn)線程池,故而當(dāng)項目中出現(xiàn)多個@Scheduled線程時,只能一個個的執(zhí)行,從而導(dǎo)致個別線程執(zhí)行時間過長(或長期執(zhí)行)時,其他定時器不能按照指定的規(guī)則進(jìn)行執(zhí)行。

解決辦法

1、配置執(zhí)行線程池的大小

spring.task.scheduling.pool.size=10

2.將定時器設(shè)置為異步線程

/**
異步線程
定時器延遲1秒啟動,每距上一次執(zhí)行完成后間隔3秒執(zhí)行一次
*/
@Async(“taskExecutor”)
@Scheduled(initialDelay = 1000L, fixedDelay = 3000L)
public void test(){System.out.println(“—”+System.currentTimeMillis());//業(yè)務(wù)內(nèi)容
}

@Scheduled多定時任務(wù),重疊執(zhí)行

@Scheduled如果有兩個定時任務(wù),定時任務(wù)重復(fù)時,只有一個可以執(zhí)行。如下

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import java.time.LocalDateTime;
 
@Component
public class MyScheduled {
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute1(){
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時間:"+LocalDateTime.now()+"  任務(wù)execute1對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute2(){
 
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時間:"+LocalDateTime.now()+"  任務(wù)execute2對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

通過執(zhí)行可以看到,打印線程名稱為同一個。即如果不手動指定線程池,則默認(rèn)啟動單線程,進(jìn)行執(zhí)行定時任務(wù)。

如果想要多個定時任務(wù)重疊執(zhí)行,需要手動指定線程池,如下

import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.stereotype.Component;
 
import java.time.LocalDateTime;
 
@Component
@EnableScheduling
public class MyScheduled {
 
    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        taskScheduler.setPoolSize(50);
        return taskScheduler;
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute1(){
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時間:"+LocalDateTime.now()+"  任務(wù)execute1對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    @Scheduled(cron = "0/5 * * * * ?")
    public void execute2(){
 
        String curName = Thread.currentThread().getName() ;
        System.out.println("當(dāng)前時間:"+LocalDateTime.now()+"  任務(wù)execute2對應(yīng)的線程名: "+curName);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

此時,多個定時任務(wù),是不通的線程執(zhí)行,同時,定時任務(wù)可以重疊執(zhí)行。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對pytorch中不定長序列補齊的操作

    對pytorch中不定長序列補齊的操作

    這篇文章主要介紹了對pytorch中不定長序列補齊的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python函數(shù)定義、參數(shù)、返回值與作用域示例詳解

    Python函數(shù)定義、參數(shù)、返回值與作用域示例詳解

    函數(shù)是組織好的、可重復(fù)使用的代碼塊,用于執(zhí)行特定任務(wù),在Python中函數(shù)可以讓我們把復(fù)雜的程序分解成小的模塊,提高代碼的可讀性和復(fù)用性,這篇文章主要介紹了Python函數(shù)定義、參數(shù)、返回值與作用域的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • Python 窗體(tkinter)按鈕 位置實例

    Python 窗體(tkinter)按鈕 位置實例

    今天小編就為大家分享一篇Python 窗體(tkinter)按鈕 位置實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • flask解析??禂z像頭視頻的使用

    flask解析??禂z像頭視頻的使用

    本文主要介紹了flask解析??禂z像頭視頻的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • PyCharm 2020 激活到 2100 年的教程

    PyCharm 2020 激活到 2100 年的教程

    這篇文章主要介紹了PyCharm 2020 激活到 2100 年,本文圖文并茂給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Tensorflow 自定義loss的情況下初始化部分變量方式

    Tensorflow 自定義loss的情況下初始化部分變量方式

    今天小編就為大家分享一篇Tensorflow 自定義loss的情況下初始化部分變量方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python動態(tài)加載技術(shù)解析

    python動態(tài)加載技術(shù)解析

    這篇文章主要介紹了python動態(tài)加載技術(shù)解析,說簡單點就是,如果開發(fā)者發(fā)現(xiàn)自己的代碼有bug,那么他可以在不關(guān)閉原來代碼的基礎(chǔ)之上,動態(tài)替換模塊替換方法一般用reload來完成,需要的朋友可以參考下
    2023-07-07
  • python datetime中strptime用法詳解

    python datetime中strptime用法詳解

    這篇文章主要介紹了python 中datetime中strptime用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • python修改txt文件中的某一項方法

    python修改txt文件中的某一項方法

    今天小編就為大家分享一篇python修改txt文件中的某一項方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中定義結(jié)構(gòu)體的方法

    python中定義結(jié)構(gòu)體的方法

    Python中沒有專門定義結(jié)構(gòu)體的方法,但可以使用class標(biāo)記定義類來代替結(jié)構(gòu)體,其成員可以在構(gòu)造函數(shù)__init__中定義,具體方法如下,特分享下,方便需要的朋友
    2013-03-03

最新評論

台州市| 呼伦贝尔市| 洛浦县| 西宁市| 德令哈市| 精河县| 柳州市| 康定县| 天全县| 江山市| 汤阴县| 简阳市| 青川县| 孝义市| 枣阳市| 都江堰市| 辽中县| 南澳县| 北碚区| 祁连县| 四子王旗| 富裕县| 竹溪县| 都昌县| 湟源县| 革吉县| 台中县| 马边| 留坝县| 酉阳| 兰州市| 舞阳县| 通河县| 同仁县| 乐平市| 集贤县| 元阳县| 柳州市| 肇东市| 康马县| 翼城县|