シンプルに保つことをお勧めします...
イベントを格納するデータベーステーブルを作成し、必要に応じてそのテーブルに挿入してから、単純なajaxポーリング手法を実装して、クライアント側でx秒ごとにサーバーにアクセスします。
プッシュ通知アプローチの使用またはnoSqlデータストアの使用を検討している他のソリューションに懸念があります。これは、Djangoフレームワークに組み込まれているツールを使用する従来のプル通知システムよりもはるかに複雑であり、非常にまれな例外を除いて、やり過ぎです。厳密なリアルタイムソリューションが特に必要な場合を除いて、シンプルに保ち、フレームワークにすでに存在するツールを使用します。データベースやネットワークのパフォーマンスに基づいて異議を唱える人にとっては、時期尚早の最適化がすべての悪。
アプリケーションに固有の最近のアクティビティデータを含むモデルを構築します。アプリケーションが新しいアクティビティをログに記録する必要がある場合は、このテーブルに挿入するだけです。
ビューは他のビューと同じようになり、このテーブルから上位x行をプルしRecentActivity
ます(オプションでクエリパラメータなどに基づきます)。
次に、クライアント側では、単純なajaxポーラーがx秒ごとにビューをヒットするだけです。使用できる複雑なプラグインやテクノロジーに不足はありませんが、独自に作成することもそれほど複雑ではありません。
function simplePoll() {
$.get("your-url", {query-parameters}, function(data){
//do stuff with the data, replacing a div or updating json or whatever
setTimeout(simplePoll, delay);
});
}
私の意見では、パフォーマンスの問題は、サイトが問題になるほど成功するまでは実際には問題ではありません。従来のリレーショナルデータベースは、TwitterやGoogleなどの成功のレベルに到達し始めるまで、かなりうまくスケールアップできます。私たちのほとんどは、そのレベルではありません:)