为什么JAX-RS / restEasyClient异步不能作为异步工作

时间:2018-08-16 00:08:29

标签: java asynchronous jax-rs resteasy

可能是我不了解其中的ASYNC部分。 我有一个好客的客户(只有一个客户)

client = new ResteasyClientBuilder().connectionPoolSize(maxConnections).connectTimeout(timeout, TimeUnit.SECONDS).readTimeout(timeout, TimeUnit.SECONDS).httpEngine(engine).build();

maxConenctions为10,客户端在启动时创建,并在for循环中对每个请求进行异步调用:

ResteasyWebTarget resteasyWebTarget = client.target(restRequestFromGateway.getUrl());
        Future<Response>  response = resteasyWebTarget.
                          request().
                          headers(headers).
                          async().
                          get(restWSResponseCallback);

 if (response!= null){
                    response.isDone();
                }

我创建了十个请求,并在for循环中将它们发送通过。在WebService端,我放置了一个调试点,然后等待。所以我得到了第一个请求,没有让它通过。

我一直希望客户端异步运行,因此它将继续并发送多个请求并等待invocationCallback中的响应,但没有这样做

直到收到来自Web服务的响应,下一个请求才真正到达Web服务。 为什么客户的请求没有一个接一个地处理。

0 个答案:

没有答案