2014-10-17 8 views
1

Я извиняю задачу Async, используя spring task execution framework. этом я аннотированный мой метод с @Async аннотацию и добавил следующее к моему контексту приложения на основе XML:Spring ThreadPoolTaskExecutor shutdown with Async task

<!-- async support --> 
<task:annotation-driven executor="myAsyncExecutor" /> 
<task:executor id="myAsyncExecutor" pool-size="5-10" queue-capacity="100" /> 

Удивился в данном случае - как же метод отключения этого исполнителя получает вызывается? Я хотел бы убедиться, что мое приложение не ждет навсегда этого threadPool.

Я мог бы (вместо использования пространства имен задач) определить моего исполнителя как bean-компонент, а затем установить его метод destroy-shutdown для «shutdown», но задавался вопросом о стиле определения пространства имен задачи.

Любые идеи?

ответ

1

Внутренняя пружина использует org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor для пространства имен task:executor.

Если вы посмотрите на соответствующий source code (который унаследован), то выключение при запуске выполняется при уничтожении бина; так что не нужно беспокоиться.