設定定時任務為多執行緒
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 ...