我正在使用spring task execution framework执行异步
任务。
为此,我使用 @Async 注释来注释我的方法,并将以下内容添加到基于 XML
的应用程序上下文中:
<!-- async support -->
<task:annotation-driven executor="myAsyncExecutor" />
<task:executor id="myAsyncExecutor" pool-size="5-10" queue-capacity="100" />
想知道在这种情况下 - 这个执行器的 shutdown 方法是如何被调用的?我想确保我的应用程序不会永远等待这个线程池。
我可以(而不是使用任务命名空间)将我的执行程序定义为一个 bean,然后将其销毁方法设置为“关闭”,但想知道任务命名空间定义样式。
有什么想法吗?
最佳答案
Spring内部使用org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
作为task:executor
的命名空间。
如果查看相关source code (这是继承的)执行器上的关闭在 bean destroy 时调用;所以不用担心。
关于java - Spring ThreadPoolTaskExecutor 关闭异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419059/