启动类增加
@EnableScheduling
@Component
public class TestSchedule {
Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
BizFeign feign;
/**
* @Fields CRON_FIFTY 每10分钟执行一次
*/
private final static String CRON_FIFTY = "1 */10 * * * ? ";
/**
* @Description 定时任务
* @author lk
*
*/
@Async
@Scheduled(cron = CRON_FIFTY)
public void scheduled() {
Date beginDate = new Date();
logger.debug("定时任务开始[{}]", beginDate);
feign.task();
Date endDate = new Date();
logger.debug("定时任务结束[{}] 共执行[{}]秒", endDate, (endDate.getTime() - beginDate.getTime()) / 1000);
}
}
application.properties增加
spring.task.scheduling.pool.size=10
需要注意的是定时任务是单线程的
比如有一个定时任务在执行。既然到了新任务的执行时间也会等到上个任务结束才执行新任务
本文详细介绍如何在Spring框架中配置并实现定时任务,包括使用@EnableScheduling注解启动定时功能,通过@Scheduled注解定义具体任务,以及调整application.properties中的线程池大小确保任务高效执行。特别注意,定时任务默认为单线程执行,需合理安排任务避免阻塞。
1136

被折叠的 条评论
为什么被折叠?



