4

一定の時間が経過した後、テーブルの値を変更する方法が必要です。私の現在の方法は次のとおりです。

  • 待機期間の終了時刻をテーブルに挿入します
  • ユーザーが値の変更を要求するページをロードするときに、現在の>=終了時刻かどうかを確認します
  • そうである場合は、値を変更して終了時刻フィールドを削除します。そうでない場合は、何もしません。

これはサイトの主要な機能になるため、効率が重要です。それを念頭に置いて、あなたはおそらく私がそれをしている方法の問題を見ることができます。誰かが情報を必要とするページにアクセスするたびに、同じコードのチャンクが呼び出されます。

改善やより良い方法についての提案は、できればphpまたはperlで大歓迎です。

cronジョブの回答への応答:ありがとう。可能であればそのようなことをしたいのですが、ホストの制限が問題です。これはアプリの主要部分であるため、制限することはできません。

4

5 に答える 5

5

cronを使用して、この情報を舞台裏で更新してみませんか?そうすれば、ヒットした各ページのチェックをオフロードし、アプリの要件を満たすタイミングを実際にスケジュールできます。

于 2008-09-23T18:48:13.907 に答える
3

cron にアクセスできないため、ソリューションは非常に論理的に聞こえます。もう 1 つの方法は、値をファイルに保存し、次にページが読み込まれるときに、最後に変更された時刻 (filemtime("checkfile.txt")) を確認し、再度変更する必要があるかどうかを判断することです。両方の方法でパフォーマンスをテストする必要があります。

于 2008-09-23T19:47:22.640 に答える
2

cronジョブを使用して、データベースの各フィールドを定期的にチェックし、そのように更新できますか?

これの大部分は、更新が必要な頻度です。多くの共有ホストは、たとえば15分ごとなど、cronチェックの頻度を制限します。これは、アプリケーションに影響を与える可能性があります。

于 2008-09-23T18:48:11.130 に答える
1

ページの読み込みごとに、ある種のトリガーを使用できます。それがパフォーマンスにどのように影響するかは本当にわかりませんが、他の誰かが光を当てることができるかもしれません。

于 2008-09-23T21:16:48.370 に答える
0

パフォーマンスが本当に問題になり始めた場合(つまり、おそらくあなたが理解しているよりもはるかに多くのことを意味します)、memchachedを使用して情報を保存できます...

于 2008-09-23T21:12:27.977 に答える