3

AsyncHttpClient を所有する Akka アクターがあります。このアクターは、多くの非同期リクエストを処理する必要があります。私のシステムは何千ものリクエストを同時に処理できないため、同時リクエストの数を制限する必要があります。

今、私はこれをやっています:

AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setAllowPoolingConnection(true)
                                                                  .addRequestFilter(new ThrottleRequestFilter(32))
                                                                  .setMaximumConnectionsPerHost(16)
                                                                  .setMaxRequestRetry(5)
                                                                  .build();
final AsyncHttpClient httpClient = new AsyncHttpClient(new NettyAsyncHttpProvider(config));

アクターがメッセージを受信すると、次のようにクライアントを使用します。

Future<Integer> f = httpClient.prepareGet(url).execute(
   new AsyncCompletionHandler<Integer>() {
      @Override
      public Integer onCompleted(Response response) throws Exception {
         // handle successful request
      }

      @Override
      public void onThrowable(Throwable t){
         // handle failed request
      }
   }
);

問題は、リクエストがクライアント キューに入れられることはなく、構成が問題ではないかのようにすべて処理されることです。なぜこれがうまくいかないのですか?

4

1 に答える 1