2012-02-24 2 views
0

非同期URLは、App Engineサンドボックスから抜ける最速のメカニズムを取得しますか?非同期URLを取得するApp Engineはリアルタイムメッセージを外部システムに最速に送信しますか?

http://ikaisays.com/2010/06/29/using-asynchronous-urlfetch-on-java-app-engine/

我々は過去に非常に遅いURL Fetcherの経験したが、プルキューがあまりにも多く、待ち時間を導入すると思いました。

私たちのGoogle App Engineアプリは、ほぼリアルタイムでUDPメッセージを送信する必要があります。 App Engineはポート80でHTTPのみをサポートしているので、HTTPメッセージをEC2/Rackspaceインスタンスに使用して、UDPメッセージを送信する予定です。

+0

ポート80でのHTTPの制限は着信要求にのみ適用されるため、外部のサーバーポートで送信するような発信要求を送ることができます。あなたの「非常に遅いURLフェッチ」はどれくらい遅いですか?あなたの近くのリアルタイム通信にはどれくらいの遅延が許容されますか? –

+0

URLFetchの速度はまだ孤立してテストされていません。 Google Checkout APIなどのURLFetchに10秒の待ち時間(URLFetch + Checkoutのコンボ)があることに気付きました。この「ほぼリアルタイム」シナリオの許容待ち時間は約3秒です。 –

+1

urlfetchが遅い場合は、urlfetchインフラストラクチャではなく、ほぼ確実にあなたが当たるサーバーです。私たちはUDPをサポートしていないので、本当にUDPが必要な場合は、外部サービスがあなたの唯一の解決策です。時間の経過とともに、これについて何かやっていきます。 –

答えて

3

最終的に、URLを実際にフェッチするのに費やされる時間は、同期しているか非同期であるかにかかわらず同じです。

違いは、あなたのアプリが結果を待つ必要があるかどうか、それが来るまでブロックする必要があるかどうか、リクエストを発して待っている間に他のことをすることができるかどうかにあります。非同期では、あなたのアプリはリクエストを発し、結果が返ってくるのを待つ間に他のものを実行することができます。

+0

GAEのURLFetchに対する非同期または同期呼び出しの設定が実際のHTTP投稿の実行速度に影響を与えるかどうかテストしましたか?私たちはまだいませんが、他人が持っているかどうか不思議でした。 –

+0

@CarterMaslan技術的な観点から、私は彼らがなぜ違うのか想像できません。いずれにしても、アプリケーションインスタンスはURLフェッチと通信するために同じ内部APIを使用する必要があります。 URLのフェッチでは、すべてのリクエストを同じように処理する必要があります。テストされたことはありませんが、それが他の方法で実装されていれば、それは奇妙なことでしょう。 – yydl