JBoss 上的 Spring 计时器在取消部署时不会停止

发布于 2024-08-20 11:33:13 字数 165 浏览 6 评论 0原文

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

I'm using the spring Quartz SchedulerFactoryBean to run a task (SimpleTriggerBean) every 10 seconds. It works great, except when I undeploy the app, the timer carries on running. The only way to stop it is to restart the server! Is there some JBoss or Spring configuration which will stop the timer when the app is undeployed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮世清欢 2024-08-27 11:33:13

我对 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....");
    }
}

I had the exact same issue with the Spring Scheduler and destroying the context in a listener did the trick. Example:

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....");
    }
}
一张白纸 2024-08-27 11:33:13

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

Found the problem - I was manually initialising the Spring Context without destroying it with the servlet. Added a listener, now it's all sorted.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文