0

ユーザーが入力して処理するフォルダー内の一連のファイルを取得する、動作中のJavaプログラムがあります。

現在、ユーザーは介入する必要はありません。彼らは、プログラムを 30 分ごとに実行し、事前に決められたパスからファイルを処理することを望んでいます。

グーグルで検索したところ、スケジューラを使用する必要があることがわかりました。では、OS 固有のスケジューラーまたは Java スケジューラーを使用する必要がありますか? また、おすすめの使い方は?

また、システムの再起動時に、プロセスが自動的に開始されます。

前もって感謝します。ハルシャ

4

3 に答える 3

1

簡単な方法は、使用することTimerTaskです。私の例では、操作は 30 分ごとに実行されます。

public class Schedular extends TimerTask {
    @Override
    public void run() {
        // your operation
    }

    public void start() {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(this, 5 *  1000 , 60 * 30 * 1000);
    }

    public static void main(String[] args) {
        Schedular schedular = new Schedular();
        schedular.start();
    }
}
于 2012-11-01T06:05:10.940 に答える
0

システムがほぼ常に稼働している場合は、Javaスケジューラー(GoogleのExecutor / TimerTaskの使用方法)を使用します。システムの再起動時にプロセスを自動的に開始する必要がある場合は、OS固有のルートを使用する必要があります。

Windowsの場合、Javaプログラムを30分ごとに実行するようにサービスをスケジュールします(例については、 http: //windows.microsoft.com/en-US/windows7/schedule-a-taskを参照してください)。基本的に、「java -cp {someclasspath}{yourprogram}」を実行する必要があります。

Unixベースのシステムの場合、30分ごとにJavaプログラムを呼び出すcronジョブを設定します。

于 2012-11-01T06:08:10.663 に答える
0

これに対処する最も簡単な方法は、cron ジョブを作成することです。利点は、その単純さと「標準化」です。人々は定期的な仕事を探す場所を知っています。欠点は、プログラムを適切に実行するための別の依存関係を作成したことです。cron エントリを作成する場合は、Java プログラムをステートレスな方法で設計する必要があることに注意してください。 http://en.wikipedia.org/wiki/Cron

于 2012-11-01T06:06:29.707 に答える