Задержка Vertx при вызове многих запросов к API

Это мой код Кажется только выполнить 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 мс. Пожалуйста, помогите мне исправить это.

1 ответ

Попробуйте с помощью curl, я подозреваю, что ваш браузер использует одно и то же соединение для всех запросов (таким образом, ожидая ответа перед отправкой следующего запроса).

Кстати, вам не нужно звонить createSharedWorkerExecutor на каждый запрос. Вы можете сделать это один раз, когда вертикал начинается.

Другие вопросы по тегам