Кварц CronTrigger - время огня - PullRequest
0 голосов
/ 12 января 2019

Я использую кварцевое выражение cron для создания n расписаний событий, у меня есть дата начала и окончания, но при создании выражения второе событие (getNextValidTimeAfter) ошибочно ...

  1. 08-03-19 08:00:00 - первое свидание
  2. 05-04-19 08:00:00 - неверная дата ...
  3. 05-07-19 08:00:00
  4. 04-10-19 08: 00: 00

Следуйте выражению

0 0 8? 1/3 FRI # 1 *

  org.quartz.CronExpression expression = new org.quartz.CronExpression(cronExpression.getExpression());

    List<Schedule> scheduleList = new ArrayList<>();

    Date nextExecutionDate = cronExpression.getStartDate();

    boolean first = true;

    while (true) {

        Schedule schedule = new Schedule();
        schedule.setStatus(Enums.StatusSchedule.PROGRAMADO);
        schedule.setCronExpression(cronExpression);
        schedule.setServiceOrderType(cronExpression.getServiceOrderType());
        schedule.setEstimatedTime(cronExpression.getEstimatedTime());

        if (first == false)
            nextExecutionDate = expression.getNextValidTimeAfter(nextExecutionDate);
        else
            first = false;

        if (cronExpression.getEndDate().compareTo(nextExecutionDate) <= 0)
            break;

        schedule.setScheduleDate(nextExecutionDate);

        if (CollectionUtils.isEmpty(schedule.getScheduleItems()))
            schedule.setScheduleItems(new ArrayList<>());

        for (GenericShelfData genericShelfData : genericShelfDataList) {

            ScheduleItem scheduleItem = new ScheduleItem();
            scheduleItem.setStatus(Enums.StatusSchedule.PROGRAMADO);
            scheduleItem.setSchedule(schedule);
            scheduleItem.setGenericShelfData(genericShelfData);
            scheduleItem.setScheduleSeparate(Enums.YesOrNo.NAO);
            schedule.getScheduleItems().add(scheduleItem);
        }

        scheduleList.add(schedule);
    }

1 Ответ

0 голосов
/ 12 января 2019

Мое выражение было неправильным ... Правильно .. 0 0 8? 3/3 FRI # 2 *

Я использую этот сайт для построения выражения: https://www.freeformatter.com/cron-expression-generator-quartz.html

...