第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何強制Spring Scheduled運行單個方法的并行執(zhí)行?

如何強制Spring Scheduled運行單個方法的并行執(zhí)行?

呼如林 2023-02-23 10:32:46
我正在嘗試使用@Scheduled方法來處理一些常規(guī)工作(每秒)。此方法的主體可以在一秒以上的時間內(nèi)處理,我看到如果發(fā)生這種情況,則不會啟動下一次執(zhí)行。Spring 是否支持它或者我應(yīng)該將它更改為任何其他并發(fā)解決方案?我曾嘗試將 Scheduler 更改為ConcurrentTaskScheduler,但看起來只有當(dāng)我們的調(diào)度方法很少時它才有用。@Servicepublic class MainService {    @Scheduled(cron = "* * * * * *")    public void doSomething() {       //some logic which can takes more than 1 second       }}@Configurationpublic class SchedulingConfig implements SchedulingConfigurer {    @Override    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {        taskRegistrar.setScheduler(taskExecutor());    }    @Bean    public Executor taskExecutor() {        return new ConcurrentTaskScheduler(                Executors.newScheduledThreadPool(100));    }}一旦第一次執(zhí)行花費了額外的時間,第二次執(zhí)行將不會開始。否則,一切正常。如何設(shè)置一個預(yù)定方法的并行執(zhí)行?
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

您可以引入一個異步組件,這樣它不需要 1 秒https://www.baeldung.com/spring-async

@Service

public class MainService {


@Autowired

private SomethingService somethingService;


    @Scheduled(cron = "* * * * * *")

    public void doSomething() {

       somethingService.doSomething();   

    }

}


//Introduce an async component so it does not take 1 second. runs doSomething() in a separate thread


@Component

public class SomethingService {


    @Async

    public void doSomething() {

       //some logic which can takes more than 1 second   

    }

}


查看完整回答
反對 回復(fù) 2023-02-23
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號