2010-02-08 59 views
1

我使用Spring Quartz SchedulerFactoryBean每10秒运行一次任务(SimpleTriggerBean)。它工作的很好,除了当我取消部署应用程序,计时器继续运行。停止它的唯一方法是重新启动服务器!是否有一些JBoss或Spring配置会在应用程序解除部署时停止定时器?JBoss上的Spring定时器在部署时不会停止

回答

0

发现问题 - 我手动初始化Spring Context而不用servlet销毁它。增加了一个监听器,现在它已全部排序。

2

我和Spring Scheduler有完全相同的问题,并且摧毁了监听器中的上下文。例如:

public class InitListener implements javax.servlet.ServletContextListener { 

    protected static final Logger logger = LoggerFactory.getLogger(InitListener.class); 
    protected static final ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext(
     "applicationContext.xml");; 

    public void contextInitialized(ServletContextEvent arg0) { 
     logger.info("Servlet Context is initialized...."); 
    } 

    public void contextDestroyed(ServletContextEvent arg0) { 
     springContext.destroy(); 
     logger.info("Servlet Context is destroyed...."); 
    } 
}