@Scheduled执行阻塞解决办法
程序员文章站
2022-07-10 19:11:14
问题还原:写了多了定时任务,但是部分任务一直不执行,想起来多个函数上使用了@Scheduled,该定时任务默认使用单线程,从而导致了线程阻塞。解决办法: 方案一:使用@Async注解实现异步任务 @Async @Scheduled(cron="0 0/10 * * * ? ") //每10分钟执行一次注意:Application主类要开启 @EnableAsync 注解 方案二:配置线程池import java.util.c......
问题还原:
写了多了定时任务,但是部分任务一直不执行, 想起来多个函数上使用了@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 {
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(50));
}
}
本文地址:https://blog.csdn.net/weixin_38959210/article/details/107493675
上一篇: JVM—类加载机制
推荐阅读
-
JS定时检测任务任务完成后执行下一步的解决办法
-
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
-
执行python manage.py makemigrations命令时报错问题及解决办法
-
windows下写的shell脚本在linux执行出错的解决办法
-
java使用@Scheduled注解执行定时任务
-
Linux执行.sh文件时提示No such file or directory该怎么办(三种解决办法)
-
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
-
做mysql主从同步从库上执行show slave status\G命令时出现问题及解决办法
-
shell脚本中执行时提示“没有那个文件或目录”的解决办法
-
执行命令行LDAP后报错:0:NO"authenticationfailed"问题解决办法