Spring Boot:通过注释配置Job Scheduler池

时间:2017-04-04 17:22:36

标签: java spring spring-boot

我有一个带有大量后台作业的Spring Boot应用程序。我在主应用程序类中添加了以下注释:

@SpringBootApplication
@EnableScheduling
public class MyApplication {

在作业类中,我有以下配置:

@Component
public class MyTask {
 @Scheduled(fixedDelay = 14400000)
 public void doSomething()

现在,Spring Boot正在以顺序方式执行作业,即一次一个作业。这似乎很可能是由于基于单个线程的池。 是否有可用于增加线程池大小的注释/属性? 直到现在,我找到了一个解决方案here,但它需要编写一个新的Configuration类。 理想情况下,它应该是application.properties文件中的属性。

2 个答案:

答案 0 :(得分:1)

我通常不会将业务逻辑放在@Scheduled方法中,而是在其他组件中调用另一个方法,此方法具有@Async注释。当您的预定作业被触发时,它会在另一个线程中调用异步方法,并且您的调度程序可以自由运行其他作业。

在此处查看更多操作方法:https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support

答案 1 :(得分:1)

我在https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html中没有看到相关内容,我在文档中看不到任何注释。

如果您希望在该级别配置它,只需创建自己的自定义属性,然后将其注入到找到的其他解决方案中。