2

App Engine で実行するアプリケーションを開発しています。私のタスクの 1 つは Web サービスを呼び出します。そのために、JAX-RS を使用します。ただし、呼び出しの 1 つは、アプリ エンジンによって設定されたタイムアウト (5 秒) に達します。このタイムアウトを 10 秒に増やしたいのですが、変更できません。実際、JAX-RS では、作成された HttpConnection オブジェクトをキャッチすることはできません。

私の質問は、URL フェッチのタイムアウトをグローバルに設定することは可能ですか?

ありがとう

4

1 に答える 1

3

どの JAX-RS スタックを使用しているかはわかりませんが、Jersey では次のことができます。


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

ClientConfig cc = new DefaultClientConfig();
cc.getProperties().put(ClientConfig.PROPERTY_THREADPOOL_SIZE,10);
Client client = Client.create(cc);
client.setConnectTimeout(1000);
client.setReadTimeout(15000);

GAE での Jersey クライアントの作成は比較的時間がかかることに注意することが重要です。そのため、このクライアントをインスタンス内の静的変数にすることをお勧めします。(これはスレッドセーフなオブジェクトなので、問題はありません) それでも、インスタンスのスピンアップに 2 ~ 5 秒かかる場合があります。

于 2012-09-27T14:44:01.633 に答える