Мне нужно, чтобы программа запускалась в определенные дни в определенное время. Как можно такое сделать средставим 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
Комментариев нет:
Отправить комментарий