#java #spring-boot #quartz-scheduler #scheduledexecutorservice
Вопрос:
Я создал кварцевый планировщик на каждые 15 минут, предположим, что он начинается в 06:00:00 и заканчивается в 18:00:00, как указано ниже
final SchedulerFactory schedulerFactory = new StdSchedulerFactory();
final Scheduler jobScheduler = schedulerFactory.getScheduler();
jobScheduler.start();
final Date startAt = DateBuilder.dateOf(6, 0, 0);
final Date endAt = DateBuilder.dateOf(18, 0, 0);
final JobDetail watchDog = JobBuilder.newJob(MonitorRunner.class).withIdentity("WatchDog15", "WatchDog").build();
final Trigger watchDogTrigger = TriggerBuilder.newTrigger().withIdentity("WatchDog15", "WatchDog")
.startAt(startAt).endAt(endAt)
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMinutes(15).repeatForever()).build();
jobScheduler.scheduleJob(watchDog, watchDogTrigger);
Задания запускаются каждые пятнадцать минут без каких-либо проблем. Теперь у меня есть класс MonitorRunner, в котором есть некоторые действия, которые необходимо выполнить в течение следующих 15 минут с интервалом в 1 секунду.
public class MonitorRunner implements Job
{
@Override
public void execute(final JobExecutionContext context) throws JobExecutionException
{
System.out.println("Job Started @" Calendar.getInstance().getTime());
final ScheduledExecutorService execService = Executors.newScheduledThreadPool(1);
execService.scheduleAtFixedRate(() -> {
System.out.println("Poll for Status");
}, 0, 1, TimeUnit.SECONDS);
}
}
- Является ли это правильным подходом?
- Вызывает ли это службу исполнителя для каждого расписания quartz?