Class IrisQuerySchedulerDependent

java.lang.Object
com.illumon.iris.controller.IrisQueryScheduler
com.illumon.iris.controller.IrisQuerySchedulerDependent
All Implemented Interfaces:
IrisScheduler

public class IrisQuerySchedulerDependent extends IrisQueryScheduler implements IrisScheduler
  • Field Details

  • Constructor Details

    • IrisQuerySchedulerDependent

      public IrisQuerySchedulerDependent()
    • IrisQuerySchedulerDependent

      public IrisQuerySchedulerDependent(String startTime, String stopTime, String timeZone, boolean schedulingDisabled, boolean overnight, boolean repeatEnabled, String repeatInterval, boolean skipIfUnsuccessful, boolean stopTimeDisabled, int errorRestartCount, boolean runOnFailure, boolean restartOnCondition, List<Long> dependentOnQuerySerials, String restartDelayMinutes, boolean useMinimumStartTime, boolean runOnAny, String deadlineStartTime, String deadlineEndTime, boolean runEveryTime, IrisQueryScheduler.RestartWhenRunning restartWhenRunning)
  • Method Details

    • generateStringArrayFromScheduler

      public String[] generateStringArrayFromScheduler()
      Specified by:
      generateStringArrayFromScheduler in interface IrisScheduler
    • populateSchedulerFromStringArray

      public void populateSchedulerFromStringArray(String[] strings)
      Specified by:
      populateSchedulerFromStringArray in interface IrisScheduler
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class IrisQueryScheduler
    • getScheduleDetailDisplay

      public String getScheduleDetailDisplay(String[] strings, Map<Long,PersistentQueryInfo> queryInfos)
      Create a displayable string for the detailed scheduling conditions.
      Specified by:
      getScheduleDetailDisplay in interface IrisScheduler
    • generateSchedulerTimes

      public void generateSchedulerTimes(Long lookPastTime, Map<Long,PersistentQueryInfo> queryInfos)
      Description copied from interface: IrisScheduler
      Generate the next start/stop time values for this query. Generated values of -1 will be used to indicate no start or stop time. After calling this, calling getStartTimeInMillis will return the generated start time and calling getStopTimeInMillis will return the generated stop time.
      Specified by:
      generateSchedulerTimes in interface IrisScheduler
      Parameters:
      lookPastTime - the time in millis past which the scheduling engine looks for the next start time, or null if none is desired
      queryInfos - the controller's query information Map
    • updateDependencyState

      public boolean updateDependencyState(Long serial, PersistentQueryState.Status status)
      Description copied from interface: IrisScheduler
      For a dependent query, update the dependency state with the passed in state, and indicate if all required dependencies have been met.
      Specified by:
      updateDependencyState in interface IrisScheduler
      Parameters:
      serial - the serial of the dependency query
      status - the status of the dependency query
      Returns:
      true if all required dependency conditions are met for this query
    • areConditionsMet

      public boolean areConditionsMet()
      Description copied from interface: IrisScheduler
      Check if the dependency conditions for running have been met.
      Specified by:
      areConditionsMet in interface IrisScheduler
      Returns:
      true if the query has met it dependency conditions
    • validate

      public void validate(Map<Long,PersistentQueryInfo> allConfigurations)
      Description copied from interface: IrisScheduler
      Validate the scheduling.
      Specified by:
      validate in interface IrisScheduler
      Overrides:
      validate in class IrisQueryScheduler
      Parameters:
      allConfigurations - a map of all current query configurations which can be used for additional validation
    • getRunOnFailure

      public boolean getRunOnFailure()
      Description copied from interface: IrisScheduler
      For a dependent query, indicates whether the query should run after a failure instead of after a success.
      Specified by:
      getRunOnFailure in interface IrisScheduler
      Returns:
      true if the dependency is for failed dependent-on runs, false if it's for Running/Completed conditions
    • shouldRestartWhenRunning

      public boolean shouldRestartWhenRunning()
      Description copied from interface: IrisScheduler
      Indicates whether a query should be restarted by the scheduler when running.
      • For a dependent query, indicates whether the query should start immediately if the dependency condition is true and the query is not in a terminal state
      • For a continually scheduled query, it indicates that a scheduled restart should cause the running query to be stopped (always true)
      • For daily and monthly scheduled queries, it indicates whether a query that's scheduled to start at a specified time should be restarted, even if it's already running (e.g. started manually out of scheduled run-time)
      Specified by:
      shouldRestartWhenRunning in interface IrisScheduler
      Overrides:
      shouldRestartWhenRunning in class IrisQueryScheduler
      Returns:
      true if the query should be restarted when its dependent-on condition is met
    • getDependentOnQuerySerials

      public List<Long> getDependentOnQuerySerials()
      Description copied from interface: IrisScheduler
      Return the list of query serials on which this query is dependent.
      Specified by:
      getDependentOnQuerySerials in interface IrisScheduler
      Returns:
      the dependent-on query serial list, or null if this is not a dependent query
    • setDependentOnQuerySerials

      public void setDependentOnQuerySerials(List<Long> newDependentOnQuerySerials)
      Description copied from interface: IrisScheduler
      Set the dependent-on query serials. For example, this may be done when importing queries from another controller.
      Specified by:
      setDependentOnQuerySerials in interface IrisScheduler
      Parameters:
      newDependentOnQuerySerials - the new dependency list
    • hasStartTime

      public boolean hasStartTime()
      Description copied from class: IrisQueryScheduler
      Return true if the scheduling has a determinable start time.
      Overrides:
      hasStartTime in class IrisQueryScheduler
      Returns:
      true if the scheduling has a determinable start time, false otherwise
    • isRunOnAny

      public boolean isRunOnAny()
    • getDeadlineStartTime

      public LocalTime getDeadlineStartTime()
    • getDeadlineStopTime

      public LocalTime getDeadlineStopTime()
    • isRunEvery

      public boolean isRunEvery()