2011-09-27 81 views
1

有什么方法可以知道战争何时正在热部署,因此我可以关闭正在运行计划任务的旧执行器?我正在使用jboss 6,并且我有一个预定的线程池,在后台定期更新数据。当我热部署该线程池不关闭和新的启动,所以我有多个计划的线程池。执行器线程在热部署后继续运行

感谢您的任何意见。

回答

4

是的,但它取决于你在哪里开始你的Executor和技术使用:

  • ServletContextListener:在contextInitialized()开始Executor和关闭它contextDestroyed()

  • 在servlet的

    ,在init()开始Executor,与destroy()

  • 在EJB/Spring的bean

    关闭它:启动法@PostConstruct注释,关闭在@PreDestroy

0

当然。这取决于你如何运行这个线程。例如,如果您正在使用servlet运行它,请使用servlet的destroy()方法来停止它。如果您使用Spring应用程序上下文的lifecicle。