admin管理员组文章数量:1794759
Spring
如何快速的设计一个定时任务,让程序在指定的时间规则内执行,或循环执行。Schedule是一个非常好的工具,Spring-boot默认就支持schedule。
在使用schedule的时候,我们会发现如果一个应用下面有多个task使用@Schedule注解是,如果时间有冲突的时候,同时只会执行一个task,其他的task会在一个task执行完成后,在执行下一个task。schedule不能同时执行多个任务
造成这个现象的原因是spring-boot的schedule默认只有1个线程。不能同时执行多个task。我们只需要修改pool-size就可以了
第一种方法。实现SchedulingConfigurer接口,重写configureTasks方法,设置线程池。@Configuration
@Configuration public class ScheduleConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(5)); } }第二种方法(没试过),据说spring-boot2.1后面,支持在application.properties里面配置配置项。
spring.task.scheduling.pool.size=20
欢迎访问个人博客交流>> schedule如何同时执行多个任务,schedule不能同时执行多个任务
本文标签: spring
版权声明:本文标题:Spring 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686477734a71930.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论