@Scheduled执行阻塞解决办法
生活随笔
收集整理的這篇文章主要介紹了
@Scheduled执行阻塞解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題還原:
寫了多了定時任務,但是部分任務一直不執行,?想起來多個函數上使用了@Scheduled,該定時任務默認使用單線程,從而導致了線程阻塞。
解決辦法:
? ?方案一:使用@Async注解實現異步任務
? ??
@Async@Scheduled(cron="0 0/10 * * * ? ") //每10分鐘執行一次注意:Application主類要開啟? ? @EnableAsync? 注解
? ?方案二:配置線程池
import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import java.util.concurrent.Executors;@Configuration public class ScheduledConfig implements SchedulingConfigurer {@Overridepublic void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(50));} }?
總結
以上是生活随笔為你收集整理的@Scheduled执行阻塞解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql的表分区
- 下一篇: phpcms配置邮箱的方法