Задержка 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
на каждый запрос. Вы можете сделать это один раз, когда вертикал начинается.