[Jersey] Limiting threads used for asynchronous requests - Jersey Client

Jersey Clientでは非同期リクエストが作成できますが、作成にはデフォルトでExecutorServiceを利用します。これはリクエスト毎に新しいスレッドを作成するため、あまり役に立たないことがほとんどです。この場合、カスタムのExecutorServiceを設定することができ、スレッド数を指定することも可能なのです(Client.setExecutorService()を参照してください)が、あまり知られていません。

そのため、作成したExecutorServiceのスレッドプールサイズを表すClientConfigクラスに別のプロパティを追加しました。以下のコードサンプルをご覧ください。
ClientConfig cc = new DefaultClientConfig();
cc.getProperties().put(ClientConfig.PROPERTY_THREADPOOL_SIZE, 10);
Client c = Client.create(cc);
AsyncWebResource r = c.asyncResource("http://somehost.tld/resource").build());
カスタムのExecutorServiceへ設定する可能性はまだ残っていますので、これはちょっとした可視性の向上ととらえてほしいと思います。


原文はこちら。
http://blogs.oracle.com/PavelBucek/entry/limiting_threads_used_for_asynchronous

0 件のコメント:

コメントを投稿