2

プログラムのスケジューリングに cron4j ライブラリを使用しています。これが私のコードです:

public class Main {
public static void main(String[] args) {
    // Declares the file.
    File file = new File("cron4j.txt");
    // Creates the scheduler.
    Scheduler scheduler = new Scheduler();
    // Schedules the file.
    scheduler.scheduleFile(file);
    // Starts the scheduler.
    scheduler.start();
    // Stays alive for five minutes.
    try {
        Thread.sleep(5L * 60L * 1000L);
    } catch (InterruptedException e) {
        ;
    }
    // Stops the scheduler.
    scheduler.stop();
}
}

「cron4j.txt」ファイル内で、プログラムを毎分実行するように設定しました。

  1. ファイル内のプログラムを毎分実行するには、オブジェクト スケジューラを含むこのファイル (クラス Main) を実行する必要がありますか?
  2. または、これを 1 回実行すると、スケジューラはこのジョブをオペレーティング システムに渡しますか?
4

1 に答える 1

4

プログラムは継続的に実行されている必要があります。Cron4jはスケジュールを隠しているだけですが、実際には、実行のために来る時間を待ってスリープしているスレッドの束です。オペレーティングシステムは、プログラムを通常のプログラムとして継続的に実行していると見なします。

オペレーティングシステムのスケジューリングメカニズムを使用するには、Cron4jを使用せずに、crontab(Linuxの場合)またはWindowsのタスクスケジューラを使用します。

業界標準と見なされているJava用のより洗練されたスケジューラーの1つは、Quartzスケジューラーです。概念は同じですが、スケジュールされたタスクを実行するには、プログラムを実行する必要があります。

于 2012-11-18T03:55:13.237 に答える