0

私のアプリケーションにはVIEW、過去の暦週に記録されたすべてのハイスコアのリストを表示する別のテーブルがあります。毎週、このリストの上位 X にいるすべてのユーザーの行の値を増やして、何週間も前に上位 X にいたことを示したいと思います。私は日付フィルターのみを使用しており、毎週発生するサーバー側の「イベント」のようなものはないため、この情報を毎週登録する最も効率的な方法がわかりません。

そうすることを考える 1 つの方法は、ユーザーがログオンするたびに何らかの「チェック」を実行することです。各暦週に最初にログオンしたユーザーは、サーバーに最後の上位 X ユーザーを増やすように指示する負担を負います。週。これは私には少しばかげているように思えますが、十分なインターネット承認があれば喜んで実行します。

私が扱っている主な言語は、MySQL と PHP です。

4

2 に答える 2

1

cronジョブの実行を検討する必要があります。ユーザーがログインするたびにチェックを実行できますが、これは、特にシステムがスケールアップする場合は、実際には理想的ではありません。

于 2013-03-05T01:37:34.397 に答える
1

1)最後に実行されたのはいつかをチェックし、それが今週だった場合は中止する更新スクリプトを作成できます。2)最終実行タイムスタンプを更新します。3)前の週を処理します。これで、オペレーティングシステムでこのスクリプトをスケジュールできます(phpで実行するか、wgetなどを使用してページを「ダウンロード」します)。たとえば、Linuxでは通常cronを使用し、Windowsではタスクスケジューラを使用します。これは、最初のユーザーを使用するよりもはるかに優れています。これは、処理を2回(並行して)実行できないことを保証するのが難しい競合状態につながる可能性があるためです。

于 2013-03-05T01:37:40.770 に答える