0

timer として設定された指定された時間に関数を実行するタイマー関数を含む POJO ファイルがあります。必要に応じて、ファイルに timer として設定された時間にこのファイルを実行する必要がありますが、方法がわかりませんこれをapache tomcatで実行します..私のPOJOファイルは私のWebアプリケーションに存在します。

この POJO ファイルが必要ですか、それともサーブレットが必要ですか?

これがPOJOファイルのコードです..

class ReportGenerator extends TimerTask {

@Override
public void run() {
    System.out.println("Generating report");
    //TODO generate report
}
}

class MainApplication {

public static void main(String[] args) {
    settimer();
}

public static void settimer() {

    Timer timer = new Timer();
    Calendar date = Calendar.getInstance();
    date.set(
            Calendar.DAY_OF_WEEK,
            Calendar.MONDAY);
    date.set(Calendar.HOUR, 11);
    date.set(Calendar.MINUTE, 51);
    date.set(Calendar.SECOND, 0);
    date.set(Calendar.MILLISECOND, 0);
    // Schedule to run every MONDAY.
    timer.schedule(
            new ReportGenerator(),
            date.getTime(),
            1000 * 60 * 60 * 24 * 7);
}
}

これは私にとって障害物であるため、私を助けてください..事前に感謝します..

4

1 に答える 1

1

基本的に、タイマーを開始する場所が必要です。私の提案は、ServletContext リスナーを使用して contextInitialized() メソッドにタイマーをロードすることです。

前述のようにタイマーを実行します。

ServletContext contextDestroy() メソッド リスナー自体のタイマーを強制終了します。

これがお役に立てば幸いです。

于 2013-11-11T07:05:49.523 に答える