今天測試來找我,說定時的策略任務不能運行了,或者有時候運行有時候不運行,很奇怪。之前都好好,百思不得其解。
后來發現多了一個定時任務類,且都是用的@Scheduled注解。
突然就恍然大悟,記得在哪里看到過,如果在多個函數上使用了@Scheduled,那么一定是一個執行完畢,才能排下一個。
然后發現某些時間點我的任務會被阻塞。
以下是兩個定時任務類都用了這個注解的圖。

解決方法如下,配置線程池,創建一個類配置,如下:
import java.util.concurrent.ScheduledThreadPoolExecutor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ThredConfig {
@Bean
public ScheduledThreadPoolExecutor scheduledExecutorService() {
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
return executor;
}
}
這就是我踩的坑,學習的路上任重而道遠。如有錯漏,歡迎指正。
