1

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

4

2 回答 2

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....");
    }
}
于 2011-11-30T00:18:40.610 回答
0

发现了问题 - 我手动初始化 Spring Context 而没有使用 servlet 破坏它。添加了一个监听器,现在一切都已排序。

于 2010-02-08T16:42:29.977 回答