Spring boot 中 @Scheduled 不起作用的一个解决办法
在 spring boot 应用中添加定时任务,按照网上的资料却怎么都不能启动,都说是缺少了 @EnableScheduling,我在加上了后却任然启动不了。
最后是这样解决的:主要是新增一个 org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler 的 bean
@Slf4j
@EnableScheduling
@Service
public class Sched {
@Autowired
private StatisticProperties statisticProperties;
@Autowired
private JedisCluster jedisCluster;
@Bean
public TaskScheduler poolScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setThreadNamePrefix("poolScheduler");
scheduler.setPoolSize(10);
return scheduler;
}
@Async(value = "asyncPoolTaskExecutor")
@Scheduled(cron = "*/5 * * * * ?")
public void clearRealtimeCacheData() {
log.info("每5秒执行一次");
}
}
本文介绍了一种在SpringBoot中解决@Scheduled注解无法正常工作的问题。通过创建一个ThreadPoolTaskScheduler bean来替代默认的调度器,实现了每5秒执行一次的定时任务。此方法适用于那些在尝试使用@EnableScheduling后仍无法启动定时任务的场景。
3154





