SpringBoot設定多執行緒執行定時任務

2021-10-05 03:13:53 字數 1335 閱讀 4631

設定定時任務為多執行緒

springboot定時任務預設都是使用單執行緒執行的,如果有多個定時任務同時執行的話,那麼就可能會導致很多任務無法按時準確執行。

單執行緒定時任務示例:

**片

@component

public

class

tasktest

catch

(exception e)

system.out.

println

(+ format.

format

(new

date()

));}

/** * @描述 定時任務222設定為每天16:20:00執行

* @param

* @作者 swzhu

* @時間 2020/4/16 16:17

* @return void

**/@scheduled

(cron =

"0 20 16 * * ?"

)public

void

test2()

}

單執行緒執行結果

可以看到,兩個定時任務設定的都是16:20:00執行。但實際上,定時任務222是等定時任務111執行結束後才執行的。

方法一新增乙個配置類,定時任務類和方法不用做任何改變。

**片

@configuration

public

class

scheduledconfig

}

方法二

新增乙個配置類,實現schedulingconfigurer介面,重寫configuretasks方法,定時任務類和方法不用做任何改變。

**片

@configuration

public

class

schedulingconfig

implements

schedulingconfigurer

}

多執行緒執行結果

可以看到,設定定時任務為多執行緒之後,定時任務222並沒有等待定時任務111執行完才執行,而是和定時任務111同時執行。

spring boot 整合多執行緒

配置pom檔案 org.mybatis.spring.bootgroupid mybatis spring boot starterartifactid 1.3.0version dependency org.springframework.bootgroupid spring boot confi...

SpringBoot啟動多執行緒

新建乙個執行緒池的配置類,需要被spring掃瞄到。configuration enableasync public class threadexecutorconfig 新增乙個普通類,裡面編寫需要執行的方法,方法加上 async註解,呼叫方法時自動啟動執行緒。component public c...

Spring boot中使用多執行緒

首先bean物件由spring容器管理 其次預設的spring初始化乙個類時,其相關依賴的元件都會被初始化 然而自己new出來的類,其相關依賴的元件不會被初始化,因為繞過了spring 一 配置spring上下文 component public class implements override ...