Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

Запуск по времени

Мне нужно, чтобы программа запускалась в определенные дни в определенное время. Как можно такое сделать средставим java ?


Ответ

Можно воспользоваться библиотекой quartz - она позволяет создавать расписание запуска в определенные дни недели/месяца и тому подобное. Например вот так:
1) Создаем задачу, которую будем запускать по расписанию:
public class QuartzJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { //запускаемая по расписанию задача
} }
2) Создаем расписание запуска и связываем задачу и расписание в планировщике:
JobDetail job = JobBuilder .newJob(QuartzJob.class) .withIdentity("QuartzJob", "group1") .build();
Trigger trigger = TriggerBuilder .newTrigger() .withIdentity("QuartzTrigger", "group1") .withSchedule(CronScheduleBuilder .cronSchedule("0 0 9-18/1 ? * MON,TUE,WED")) .build();
SchedulerFactory schedFact = new StdSchedulerFactory(); Scheduler sched = schedFact.getScheduler(); sched.start(); sched.scheduleJob(job,trigger);
В данном примере задача запускается каждый час в 0 секунд и 0 минут в период с 9 до 18 часов каждый понедельник, вторник и среду. Подробнее про конфигурацию планировщика можно прочитать в документации ссылка №1 и ссылка №2

Комментариев нет:

Отправить комментарий