3

创建和管理自己ExecutorService的方法与在@Bean方法上使用 Spring Boot 的 @Async 和创建Executor.

对我来说,手动操作似乎要简单得多。我只是创建了 myExecutorService和一个使用它来安排任务的方法/ Callable

我需要 Spring Boot:

  • 装饰方法@Async
  • @Configuration用,装饰我的配置类@EnableAsync
  • 添加一个@Bean以创建一个Executor

手动操作是否存在潜在问题?Spring可能会杀死线程吗?使用 Spring Async 模式还有其他好处吗?

4

1 回答 1

1

看起来你的大部分挂断对于很多 Spring IoC 配置都是正确的。这@Async是 Spring Framework 的一部分,而不是 Spring Boot。

正如您所提到的,您可以自己处理执行程序,但如果您已经开始使用 Spring Framework 和 Spring Boot,我会质疑为什么还要麻烦。

Spring 确实在后台自己处理一些项目,例如shutdown关闭 ApplicationContext 时的执行程序。

如果您选择使用它,还有一些很好的异常处理可以与 Spring Framework 的调度方面一起使用。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-qualification

必须创建@Bean,@Configuration是 Spring 的现实,在我看来并不是真正的缺点,它只是框架的现实。

最后,@Async抽象出实现的需求Runnable,或@Callable有效地允许更快地实现异步功能。

于 2017-08-04T20:18:47.057 回答