-1

この状況に対処するための最善の戦略を知りたいのですが、次のアクションがあるとします。

class BetsController < ApplicationController
  def create
    @bet = Bet.new(params[:bet])
    # some other operation
  end
end

時々、このアクションへの大量の呼び出しを受け取り、データを失う可能性があります。毎回スレッドを生成する必要がありますか? 助言がありますか?

4

1 に答える 1

0

スケーリングはかなりのトピックであり、ニーズにぴったりの答えを提供することは実際には不可能です.

しかし、始めるために:

  • アクション自体の実行に時間がかかる場合は、オフライン作業を行うことを検討する必要があります。基本的には、必要な情報を保存し、すべてのキュー リクエストに対してオフライン ワーカーを実行して、一度に 1 つずつ処理する必要があります。このアプローチでは、アプリケーションの再設計が必要になる場合があります。失敗する可能性がある場合、または何らかの結果を返す場合に備えて、ユーザーが自分のアクションに関するフィードバックを受け取る方法を検討する必要があります。
  • アクションが非常に短く、これが単なる負荷の問題である場合は、スケーリングへの他のアプローチを検討する必要があります-負荷分散を備えた追加サーバーなど。

これは完全な答えにはほど遠いことを知っていますが、これは本当に大きなトピックです...

于 2012-08-14T10:25:20.297 に答える