3

ランキング機能付きのWebサービスを構築しています。

私は強力なサーバーを持っていません。サービス全体が標準のPCでホストされます。多くのユーザー(この場合はmany =〜100)がランキングを更新しているときがあるかもしれないので、これが原因でユーザーがサーバーをクラッシュさせないようにします。

リアルタイムで更新しなくても問題ありません。以前に生成されたユーザーランキングを表示できます。

ランキングの生成は問題ありません。私はこれを簡単に行うことができます:

User.objects.filter(...).order_by('rank')

編集:詳細:計算をしている労働者がいます。ワーカーが作業を終了すると、一部のユーザーインスタンスのランクフィールドが変更されます。すべてのユーザーがいくつか(5〜20)の計算につながるアクションを実行し、それぞれがこのユーザーのランク変更を引き起こすと想定できます。

4

1 に答える 1

1

ランキングの更新が長すぎてリクエストごとに実行できない場合は、次のソリューションを使用できます。

  • ランキングを更新する何かが発生した後、ランキングを更新するがリクエストをブロックしない非同期タスクを作成します。セロリギアマンを使うことができます
  • セロリの定期的なタスクまたはcronジョブを使用して、ランキングを定期的に更新します

解決策1は、パフォーマンスの面では優れていますが、正しく理解するのは困難です。解決策2の方が簡単ですが、最適性が低くなる可能性があります。

于 2012-09-12T20:26:06.187 に答える