Java cron4j запланированные файлы
Я использую библиотеку 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" я настроил запуск моей программы каждую минуту.
- Должен ли этот файл (класс Main) с планировщиком объектов выполняться для того, чтобы программа в файле выполнялась каждую минуту?
- Или, если я запустлю это один раз, планировщик передаст это задание операционной системе?
1 ответ
Программа должна быть постоянно запущена. Cron4j просто скрывает расписание для вас, но на самом деле это куча потоков, спящих и ожидающих времени для исполнения. Операционная система просто видит вашу программу как нормальную, постоянно работающую.
Чтобы использовать механизмы планирования операционной системы, вы не используете Cron4j, а используете crontab (в Linux) или планировщик задач в Windows.
Еще одним сложным планировщиком для Java, который больше считается отраслевым стандартом, является http://quartz-scheduler.org/. Однако концепция та же, ваша программа должна быть запущена для выполнения запланированных задач.