我有一个带有大量后台作业的Spring Boot应用程序。我在主应用程序类中添加了以下注释:
@SpringBootApplication
@EnableScheduling
public class MyApplication {
在作业类中,我有以下配置:
@Component
public class MyTask {
@Scheduled(fixedDelay = 14400000)
public void doSomething()
现在,Spring Boot正在以顺序方式执行作业,即一次一个作业。这似乎很可能是由于基于单个线程的池。 是否有可用于增加线程池大小的注释/属性? 直到现在,我找到了一个解决方案here,但它需要编写一个新的Configuration类。 理想情况下,它应该是application.properties文件中的属性。
答案 0 :(得分:1)
我通常不会将业务逻辑放在@Scheduled
方法中,而是在其他组件中调用另一个方法,此方法具有@Async
注释。当您的预定作业被触发时,它会在另一个线程中调用异步方法,并且您的调度程序可以自由运行其他作业。
答案 1 :(得分:1)
我在https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html中没有看到相关内容,我在文档中看不到任何注释。
如果您希望在该级别配置它,只需创建自己的自定义属性,然后将其注入到找到的其他解决方案中。