読者です 読者をやめる 読者になる 読者になる

風柳メモ

ソフトウェア・プログラミング関連の覚書が中心。

HookHubのhttp関連の話の続き

HookHubのhttpでGETとかPOSTしようとしても

error:Wrapped com.google.apphosting.api.ApiProxy$ApiDeadlineExceededException: The API call urlfetch.Fetch() took too long to respond and was cancelled. :5

HookHubでhttpがうまく動きません(><) - 風柳メモ

が出てうまくいかない件。

GAE/Jは未だ使っていないので、Googleでそれらしいのを検索してみただけなんですが、近そうな現象として、

I'm getting a series of ApiDeadlineExceededException on URL fetch calls after only 20ms.

Google グループ

というのがありました。

これは、

Yes it should be setting the timeout to 30 secs,
mmm my bad, I assumed method arguments were seconds, instead I've just checked they are milliseconds.

Google グループ

ということで、setReadTimeout()やsetConnectTimeout()の引数を、ミリ秒単位で指定しなければいけないところ、秒単位だと勘違いして指定していた、という落ちでした。

もしかすると、HookHubでも同じような落ちがあったりして……?

You can set a deadline for a request, the most amount of time the service will wait for a response. By default, the deadline for a fetch is 5 seconds. The maximum deadline is 10 seconds. When using the URLConnection interface, the service uses the connection timeout (setConnectTimeout()) or the read timeout (setReadTimeout()) as the deadline, whichever is greater.

http://code.google.com/intl/en/appengine/docs/java/urlfetch/overview.html

によれば、GAE/Jでも10秒までは設定出来るみたいなので、可能であれば setConnectTimeout(10000)、setReadTimeout(10000)を明示して試していただけないでしょうか?>id:cho45 さん。
既に試されてしたら申し訳ありません。