【问题标题】:Spark Java 2.6.0 - Shutdown hookSpark Java 2.6.0 - 关机钩子
【发布时间】:2019-12-12 23:45:34
【问题描述】:

spark-java 2.6.0 的文档提到“Embedded Jetty 现在是完全可配置的”。

如何通过 Spark 2.6.0 配置关闭挂钩?

我过去重写了 Jetty 的 Handler.doStop() 方法,但我不清楚如何通过 Spark 框架完成等效的操作。

【问题讨论】:

    标签: spark-java


    【解决方案1】:

    这是在 sparkjava 中覆盖 Handler.doStop() 的方法:

    public class Main {
        public static void main(String ...args) throws Exception {
            EmbeddedServers.add(EmbeddedServers.Identifiers.JETTY, (Routes routeMatcher, StaticFilesConfiguration staticFilesConfiguration, boolean hasMultipleHandler) -> {
                MatcherFilter matcherFilter = new MatcherFilter(routeMatcher, staticFilesConfiguration, false, hasMultipleHandler);
                matcherFilter.init(null);
    
                JettyHandler handler = new MyJettyHandler(matcherFilter);
    
                return new EmbeddedJettyServer((int maxThreads, int minThreads, int threadTimeoutMillis) -> new Server(), handler);
            });
    
            get("/hello", (req, res) -> {
                req.session(true);
                return "Hello World";
            });
        }
     }
    
    class MyJettyHandler extends JettyHandler {
    
        public MyJettyHandler(Filter filter) {
            super(filter);
        }
    
        @Override
        protected void doStop() throws Exception {
            super.doStop();
    
            // your magic happens here.
        }
    }
    

    我初始化嵌入式码头的代码取自 sparkjava 本身,所以我不会改变框架的行为。

    【讨论】:

      【解决方案2】:

      对于正在为较新版本的 Spark 寻找答案的人,这里有一个参考:http://sparkjava.com/documentation#stopping-the-server

      由于互联网上的 URL 不会永远存在,这里是 qoute:

      通过调用 stop() 方法停止服务器并清除所有路由。

      以及我如何使用代码的示例:

          public static void stopService(){
              stop();
              awaitStop();
          }
      

      这个有什么用?例如,如果您想对服务进行重复测试,清除它并重新初始化它,那么这会派上用场,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-05
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        相关资源
        最近更新 更多