2012-02-22 11 views
1

私はいくつかのDBレコードをいくつかの期間キャッシュする必要があります。特定の時刻にdbテーブルをキャッシュしていますか?

たとえば、私は今日の午後4時に私のウェブサイト上で膨大なトラフィックを想定しています。私は約3.50でログインテーブルをキャッシュします。ユーザがこの時に来ることを知っているからです。私は

をキャッシュするものが必要かどうかを確認するためにあらゆる1時間でそれを実行するとに保証スレッドであるどのように私は私は思っています?Javaでそれについて移動することができ、特定の間隔でスレッドを実行し、その後 さ

走る?

class Mthread extends Thread{ 

run(){ 
    //update cache 
} 
} 

答えて

0

Java Cronをご覧ください。私はこれがあなたの問題を解決するはずだと思います。 http://www.sauronsoftware.it/projects/cron4j/

Cronジョブは、特定の時間に何らかのアクションをトリガするために使用され、毎日午後3時50分に動作するように構成できます。 うまくいけば、それはあなたが無限にループwhileループを使用して、run()メソッドを実装することができ、あなたの問題

0

を解決する必要があります。ループが繰り返されるたびに、次の更新時刻までスレッドがスリープするまでの時間をミリ秒単位で計算します(定期的にスリープ状態を解除する場合は、最大スリープ時間を設定します)。

  1. あなたはそれが眠るまたは次のキャッシュ更新時間まで待機する必要があり、正確にどのくらいの時間を教えて:スレッドがあなたはそれがしたいときに実行することが保証されて、次のように提供。
  2. あなたのスレッドは、あなたが望む前に中断されません。
  3. スレッドのrun()メソッドが例外的に返されることはありません。
  4. あなたのスレッドは、OutOfMemoryErrorのような奇妙なエラーを発生させません。
関連する問題