long initialDelay()

in src/main/java/com/ericsson/gerrit/plugins/gcconductor/executor/ExecutorConfig.java [124:150]


  long initialDelay(String start, ZonedDateTime now, long interval) {
    if (start == null) {
      return DEFAULT_INITIAL_DELAY;
    }
    try {
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("[E ]HH:mm").withLocale(Locale.US);
      LocalTime firstStartTime = LocalTime.parse(start, formatter);
      ZonedDateTime startTime = now.with(firstStartTime);
      Optional<DayOfWeek> dayOfWeek = getDayOfWeek(start, formatter);
      if (dayOfWeek.isPresent()) {
        startTime = startTime.with(dayOfWeek.get());
      }
      startTime = startTime.truncatedTo(ChronoUnit.MINUTES);
      long firstDelay = Duration.between(now, startTime).toMillis() % interval;
      if (firstDelay <= 0) {
        firstDelay += interval;
      }
      return firstDelay;
    } catch (DateTimeParseException e) {
      log.debug(
          "Invalid value {} for {} setting. Periodic evaluation disabled",
          start,
          START_TIME_KEY,
          e);
      return DEFAULT_INITIAL_DELAY;
    }
  }