1

这是我的代码。似乎只执行 1 个请求

public class RestFulService extends AbstractVerticle  {

    @Override
    public void start() throws Exception {

        Router router = Router.router(vertx);


        router.get("/test/hello/:input").handler(new Handler<RoutingContext>() {
            @Override
            public void handle(RoutingContext routingContext) {

                WorkerExecutor executor = vertx.createSharedWorkerExecutor("my-worker-pool",10,120000);
                executor.executeBlocking(future -> {


                    try {
                        Thread.sleep(5000);
                        future.complete();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }


                },false, res -> {
                    System.out.println("The result is: " + res.result());
                    routingContext.response().end("routing1"+res.result());
                    executor.close();
                });



            }
        });


}

当我同时从浏览器调用 10 个请求时,完成所有请求需要 50000 毫秒。请指导我修复它。

4

1 回答 1

1

尝试使用 curl,我怀疑您的浏览器对所有请求都使用相同的连接(因此在发送下一个请求之前等待响应)。

顺便说一句,您不需要调用createSharedWorkerExecutor每个请求。您可以在垂直启动时执行一次。

于 2017-03-20T09:08:45.473 回答