2012-02-06 13 views
1

2時間ごとにparsePage()メソッドを呼び出すと、メソッドはページを処理してデータベース内の情報を更新します。私は、Tomcatサーバーでこれを入れたいと私のコードは今、この権利のようになります。2時間ごとにTomcatのメソッドを呼び出す

TimerTask parserTimerTask = new TimerTask() { 
    @Override 
    public void run() { 
     MyParser.parsePage(); 
    } 
}; 

Timer parserTimer = new Timer(); 
parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD); 

私はクラスで(起動時にその負荷)のinit()メソッドを、これを置きます。

これを正しく実行していますか?または、この作業を行うより良い方法はありますか?

ありがとうございました。

+0

あなたがtomcatの中でそれをすることに固執することに決めたら、使いやすいスケジューリングライブラリであるQuartzを見てください。それは長い間されており、まだ維持され、まだ無料です。 – lumpynose

答えて

2

あなたのアプローチはうまくいくはずです。

あなたは明らかにもTimerを作成し、繰り返し的にTimerTaskをの実行をキックオフするために、適切なスケジュール方法にTimerTaskをを渡す必要があります、何かのように:より多くので

Timer timer=new Timer(true); 
timer.schedule(myTimerTask, 0, 2*3600*1000L); 

洗練された環境では、Quartz Schedulerのようなものを使用して見たいと思うかもしれません。これにより、より良いロギング、冗長フェールオーバー、より洗練されたスケジュール、トランザクション制御などのようなものが得られます。しかし、これはすべて単純なユースケースには必要ないでしょう。

+0

はい私はタイマーを持っていて、それを予定しています。私はOPを編集しました。あなたのお返事ありがとうございます。 –

1

ここではあまり情報はありませんが、Linux環境でcronジョブを使用してcurlやwgetをサーブレットに呼び出す方が意味がありますか?

+0

私はUbuntuのEC2インスタンスでTomcatを実行しています。私はこの方法を考えたことがない、これはより意味があり、私はそれを見て、ありがとう! –

関連する問題