0

パフォーマンスオプティクスでこれを行う方法について少し混乱しています。

私のページのプロセスを可能な限り説明しようと思います。

まず、私のページには、私の Web サイトのユーザーが投稿しているコンテンツが表示されています。新しいコンテンツは毎秒追加されますが、ページごとに 20 または 50 のコンテンツしか表示されません。

ここで助けが必要です。表示するコンテンツごとに、そのコンテンツを投稿したユーザーのオンライン ステータスを取得する必要があります。このオンライン ステータスは、私の Web サイトでのユーザーのオンライン ステータスではなく、オンライン ソフトウェアでのユーザーのオンライン ステータスです。このステータスを取得するには、そのソフトウェアの Web サーバーに保存されている json ファイルをダウンロードします。

ページごとに 20 個のコンテンツを表示する前に言ったので、20 個の json ファイルをダウンロードする必要があります。いいえ、json ファイルを呼び出すときに user_id を連結できます。したがって、1つのjsonファイルで20ステータスを取得できます。とにかく、私のサーバーのパフォーマンスのために、誰かが私のページにアクセスするたびにjsonファイルをダウンロードするのは良くないと思います. このページは、同時に多くの人がアクセスできるためです。

私はキャッシングで何かをしなければならないと思いますが、私は初めてです。誰かがこれを実装する方法を説明してくれたらうれしいです。つまり、プロセスと、使用するメインの php 関数を意味します。

どうもありがとう!

4

1 に答える 1

1

これを実装する最も簡単な方法は、キャッシュを介した読み取りのようなものです。つまり、最初にキャッシュ (おそらく memcached) に現在のデータがあるかどうかを確認します。それ以外の場合は、読み込んでリクエストを実行し、結果をキャッシュします。memcached を使用すると、コードがソースからデータを再度読み取ろうとする前に、データの有効期限が切れる (おそらく 1 ~ 5 分) ように設定できます。

これをどのように実装するかについては、ネットワークの問題を考慮する必要があります。リクエストがかなり早くタイムアウトすることを確認する必要があります。そうしないと、ユーザーがページの読み込みを長時間待機する可能性があります (データがキャッシュから取得されていない場合)。

より堅牢なソリューションでは、オンライン ステータスを非同期的にチェックできます。ページが読み込まれると、キャッシュからデータを取得し、欠落している場合はジョブをトリガーしてステータスを取得し、キャッシュを更新します。ページがロードされた後 (そしてできればバックグラウンドでジョブが完了した後) にオンライン ステータスを更新するクライアント側に ajax コードがあります。ページの読み込み時に利用可能なステータスは正しく表示され、保留中のステータスはある種の「チェック中」ステータスが表示されます。

于 2013-07-23T14:37:28.450 に答える