0

Heroku の無料利用枠で Rails アプリを使用していますが、最近ユーザーが増え始めました。私のアプリのイベントの 1 つに、別の API のクエリが含まれており、完了するまでに最大 10 秒かかる場合があります。シンプルなページに (別のユーザーの API イベントとして) 同時にアクセスする他のユーザーが、ページが読み込まれるまで 10 秒待たなくて済むようにするにはどうすればよいですか?

追加の Dyno に料金を支払う必要がありますか? これはdelayed_job gemで解決できるものですか? 別のホスト (AppFog や OpenShift など) は、同時リクエストをより高速に処理できますか?

更新: この質問は、delayed_job を使用する代わりにスレッドを手動で処理することを提案しています。

4

3 に答える 3

1

それは遅延ジョブの状況のように聞こえます。最初のリクエストが待機中の場合、最も効率的な方法は、プロセスが完了するまで待機するようにプロセスを割り当て、Rails プロセスを切り離して別のリクエストを処理することです。

于 2013-08-06T15:13:44.340 に答える
1

はい、より多くの dyno が必要です。特にワーカー dyno は、バックグラウンドで動作するものであり、遅延ジョブでこの railscast を確認することもできます。

http://railscasts.com/episodes/366-sidekiq

無料の heroku インスタンスにユニコーンと複数のスレッドを追加するための簡単なチュートリアルもここにあります。

https://devcenter.heroku.com/articles/rails-unicorn

dyno を 2 つ以上のインスタンスに分割すると、それぞれが異なるリクエストを処理できます

于 2013-08-06T15:14:43.610 に答える
0

どの種類のアプリ サーバーを使用していますか? パッセンジャーまたはユニコーンを使用している場合は、同時リクエストを処理できる複数のワーカー プロセスを使用できます。

http://www.modrails.com/documentation/Users%20guide%20Apache.html#_passengermaxinstancesperapp_lt_integer_gt

于 2013-08-06T15:15:20.230 に答える