- - PR -
servlet application スコープ変数の定時更新
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-03 23:16
お世話になっております。
題名の方法で悩んでおります。 たとえば、一日一回TBL更新したデータを取得して、applicationスコープ変数にて保持しておいて、そちらをサイトのエントランスページで表示させることを実現したいと考えております。(一日の間は同じデータで全訪問者に対して問題ないため) 処理の効率性を考えると、毎回ページリクエスト毎にSQLでデータを取得することは望ましくないため、上記方法を望んでいるのですが、バッチのようにapplication変数を一日一回更新するスマートな方法が思いつきません。 servletでTBLからデータを再取得するクラスを作って、バッチでそのservletのURLを一日一回リクエストしてあげれば、データは更新されると思いますが、どーもいまいち。。スマートじゃないような。。 なにか、スタンダードな方式はございませんでしょうか? |
|
投稿日時: 2006-03-03 23:24
1.データを取得するクラスとメソッドを作る、
2.メソッドはstaticにする、 3.メソッドの先頭で、日付が変わったかどうかチェックする、 4.データがまだ存在しないか、日付が変わった場合は、 新規作成して保管。そしてそれを返す。 5.データが存在していて、日付が変わっていない場合は、保管されているデータを返す。 ってのでどうでしょう。 |
|
投稿日時: 2006-03-03 23:34
サーブレットのinitメソッド内で、
java.util.Timer/java.util.TimerTaskを使用して、 1日1回データ更新処理を行うのはいかがでしょうか。 java.util.TimerTaskを継承するときに、サーブレットコンテキストのインスタンスを そのクラスに渡せるようにすると、楽にできると思います。 |
1