2011-06-26 4 views

答えて

7

情報をより便利になるようにあなたは、おそらくここに小さな要約ですが、これに関してはthe Heroku devcenter articleが表示されます。

シダーは長期サポート:

がタイムアウト質問に答えるためにポーリングとストリーミングの応答。あなたのアプリは最初の30秒のウィンドウを持っていて、クライアントに1バイト戻って返答します。送信された各バイト(クライアントから受信されるか、アプリケーションによって送信される)の後、ローリング55秒のウィンドウがリセットされます。 55秒間にデータが送信されない場合、接続は終了します。

(。。それはあなたがシダーの代わりに、アスペンや竹を持っていた場合は、単にシステムをだまして、バイトごとに30秒程度を送ることができる、であるそれはうまくいくかもしれない)

ごdynosの質問に答えるために:

要求のタイムアウトが発生した場合、追加の同時実行性は何の助けにもなりません。ダイノーを最大限にクランクすることができます。また、リクエストがタイムアウトになるのは、正しい時間内に処理できないリクエストであるためです。特別なダイノスは、要求のスピードではなく、並行性を向上させます。

(つまり、より多くのdynosを追加する気にしないでください。)

request timeoutsで:もしそうなら

:あなたは大きな何かをやっている場合は、無限ループのためにあなたのコードを確認 この重い吊り上げを、あなたのWebリクエストから非同期に実行できるバックグラウンドジョブに移行する必要があります。詳細は、Queueingを参照してください。

+0

ご提案ありがとうございます。要求が処理されている場合、30秒ごとにバイトを送信するにはどうすればよいですか? – donald

+0

@donaldそれはあなたが本当にやっていることによって決まります。例えば、再帰的な階乗シーケンスを考えてみましょう。時間オブジェクトを作成することができます(タイマーと呼ぶ)。その後、タイマーの現在の時刻を取得し、25秒前に26秒間追加します。階乗を計算する関数を実行するたびに、現在時刻が 'timer'以上であるかどうかをチェックします。そうであれば、ちょっとしたメッセージをクライアントに送信するだけです(静止ロードなど)。これは非常に基本的な例であり、正確に何をしたいのか分からずに、あなたのために何がうまくいくと言うのは難しいです。 – Arka

+0

ありがとうございます。私はフォローアップ要求を持っています、私はあなたが私を助けてほしい:http://stackoverflow.com/questions/6486035/rails-3-return-large-amount-of-data-to-user-via-api – donald

関連する問題