繁体   English   中英

使Jetty服务器在关闭之前执行某些操作的最佳方法是什么?

[英]What is the best way to make a Jetty server do something before shutting down?

我有一个正在初始化和启动的Jetty服务器,如下所示:

    Server server = new Server(50001); 

    MyHandler myHandler = new MyHandler();
    server.setHandler(myHandler);


    // attempt to run the server
    try {
        server.start();
        server.join();
    } catch (Exception e) {
        logger.warning(e.getMessage());
        System.exit(2);
    }

MyHandler类具有一个称为shutdown的方法,该方法等待任务完成。 我希望在服务器关闭之前调用myHandler.shutdown()

我已经考虑过使用Runtime.getRuntime().addShutdownHook() ,但是我不确定将myHandler传递给它的最佳方法,并且我怀疑必须有一种更干净的方法来执行此操作。

我正在寻找做到这一点的最佳方法。

谢谢!

沿着处理程序链向下移动,您将看到它运行在AbstractLifeCycle中,该定义了一些名为doS​​tart()和doStop()的方法。 由于您要将自己添加为服务器的处理程序,因此可以覆盖它们以插入服务器实例的生命周期。 这通常适用于扩展AbstractLifeCycle或实现Lifecycle的任何事情,从而使其成为注册开始和停止类型行为的便捷机制。 在处理server.start()时将调用doStart(),在处理server.stop()时将调用doStop()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM