Поток исполнителя продолжает работать после горячего развертывания - PullRequest
1 голос
/ 27 сентября 2011

Есть ли какой-нибудь способ узнать, когда разворачивается война, чтобы я мог выключить старого исполнителя, который выполняет запланированные задачи?Я использую jboss 6, и у меня есть запланированный пул потоков, который периодически обновляет данные в фоновом режиме.Когда я выполняю горячее развертывание, этот пул потоков не отключается, и запускается новый, поэтому у меня есть несколько запланированных пулов потоков.

Спасибо за любой ввод.

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011

Да, но это зависит от того, где вы запускаете Executor и какую технологию вы используете:

  • в ServletContextListener : запуск Executor в contextInitialized() и выключите его в contextDestroyed().

  • в сервлете, запустите Executor в init(), выключите его с помощью destroy()

  • в EJB / Spring bean: запуск в методе, аннотированном @PostConstruct, выключение в @PreDestroy.

0 голосов
/ 27 сентября 2011

Конечно.Это зависит от того, как вы запускаете эту тему.Например, если вы запускаете его из sevlet, используйте метод сервлета destroy(), чтобы остановить его.Если вы используете Spring, используйте lifecicle своего прикладного контекста.

...