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. 或者一旦我运行一次,调度程序会将这个工作传递给操作系统?
4

1 回答 1

4

程序必须连续运行。Cron4j 只是为您隐藏了调度,但实际上是一堆线程正在休眠并等待执行的时间。操作系统只是将您的程序视为正常运行的程序。

为了使用操作系统的调度机制,您不要使用 Cron4j,而是使用 crontab(在 linux 上)或 Windows 上的任务调度程序。

一种更复杂的 Java 调度程序,更被认为是行业标准,是Quartz Scheduler。但是概念是相同的,您的程序需要运行才能使计划任务发生。

于 2012-11-18T03:55:13.237 回答