首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark Java 2.6.0 -关闭钩子

Spark Java 2.6.0 -关闭钩子
EN

Stack Overflow用户
提问于 2017-07-11 05:02:23
回答 2查看 1.1K关注 0票数 2

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

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

我曾经重写过Jetty的Handler.doStop()方法,但我不清楚如何通过Spark框架实现相同的功能。

EN

回答 2

Stack Overflow用户

发布于 2017-07-11 13:43:16

下面是如何在sparkjava中覆盖Handler.doStop()

代码语言:javascript
复制
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.
    }
}

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

票数 1
EN

Stack Overflow用户

发布于 2019-12-12 23:45:34

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

由于互联网上的URL并不是永远存在的,这里有一个问题:

通过调用

()方法停止服务器并清除所有路由。

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

代码语言:javascript
复制
    public static void stopService(){
        stop();
        awaitStop();
    }

这个的用法是什么?例如,当您想要对服务进行重复测试时,清除它并重新初始化它,这就派上用场了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45021534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档