Package com.illumon.iris.controller
Class IrisQuerySchedulerDependent
java.lang.Object
com.illumon.iris.controller.IrisQueryScheduler
com.illumon.iris.controller.IrisQuerySchedulerDependent
- All Implemented Interfaces:
IrisScheduler
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.controller.IrisQueryScheduler
IrisQueryScheduler.RestartWhenRunning -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class com.illumon.iris.controller.IrisQueryScheduler
DISABLED_PARSE_STRING, overnight, RESTART_COUNT_UNLIMITED, timeZoneFields inherited from interface com.illumon.iris.controller.IrisScheduler
DELIMITER_TOKEN, SCHEDULER_TYPE_TOKEN -
Constructor Summary
ConstructorsConstructorDescriptionIrisQuerySchedulerDependent(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 Summary
Modifier and TypeMethodDescriptionbooleanCheck if the dependency conditions for running have been met.copy()Copy this objectbooleanvoidgenerateSchedulerTimes(Long lookPastTime, Map<Long, PersistentQueryInfo> queryInfos) Generate the next start/stop time values for this query.String[]Return the list of query serials on which this query is dependent.booleanFor a dependent query, indicates whether the query should run after a failure instead of after a success.getScheduleDetailDisplay(String[] strings, Map<Long, PersistentQueryInfo> queryInfos) Create a displayable string for the detailed scheduling conditions.booleanReturn true if the scheduling has a determinable start time.booleanbooleanvoidpopulateSchedulerFromStringArray(String[] strings) voidsetDependentOnQuerySerials(List<Long> newDependentOnQuerySerials) Set the dependent-on query serials.booleanIndicates whether a query should be restarted by the scheduler when running.booleanupdateDependencyState(Long serial, PersistentQueryState.Status status) For a dependent query, update the dependency state with the passed in state, and indicate if all required dependencies have been met.voidvalidate(Map<Long, PersistentQueryInfo> allConfigurations) Validate the scheduling.Methods inherited from class com.illumon.iris.controller.IrisQueryScheduler
copyBaseFieldsFrom, enforceStartStopTimeOrder, getRepeatInterval, getRestartDelayMinutes, getRestartErrorCount, getRestartWhenRunning, getRestartWhenRunningValues, getSchedulingDisabled, getStartTime, getStartTimeDisplay, getStartTimeInMillis, getStartTimeOfDay, getStopTime, getStopTimeDisplay, getStopTimeInMillis, getStopTimeOfDay, getTimeZoneDisplay, getTimeZoneString, hasStopTime, isOvernight, isRepeatEnabled, isStartTimeFirstForDay, isStopTimeDisabled, skipIfUnsuccessfulMethods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.illumon.iris.controller.IrisScheduler
enforceStartStopTimeOrder, getExpirationTimeMillis, getRepeatInterval, getRestartDelayMinutes, getRestartErrorCount, getSchedulingDisabled, getStartTimeDisplay, getStartTimeInMillis, getStartTimeOfDay, getStopTimeDisplay, getStopTimeInMillis, getStopTimeOfDay, getTemporaryQueueName, getTimeZoneDisplay, getTimeZoneString, hasStopTime, isAutoDelete, isOvernight, isRepeatEnabled, isStartTimeFirstForDay, skipIfUnsuccessful, updateDependencyState
-
Field Details
-
RUN_ON_FAILURE_STRING
- See Also:
-
RESTART_ON_CONDITION_STRING
- See Also:
-
DEPENDENT_QUERY_SERIAL_STRING
- See Also:
-
USE_MIN_START_TIME_STRING
- See Also:
-
RUN_ON_ANY_STRING
- See Also:
-
DEADLINE_START_STRING
- See Also:
-
DEADLINE_END_STRING
- See Also:
-
RUN_EACH_STRING
- See Also:
-
-
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
- Specified by:
generateStringArrayFromSchedulerin interfaceIrisScheduler
-
populateSchedulerFromStringArray
- Specified by:
populateSchedulerFromStringArrayin interfaceIrisScheduler
-
equals
- Overrides:
equalsin classIrisQueryScheduler
-
copy
Description copied from interface:IrisSchedulerCopy this object- Specified by:
copyin interfaceIrisScheduler- Returns:
- a new object with exactly the same scheduler definition as this one
-
getScheduleDetailDisplay
Create a displayable string for the detailed scheduling conditions.- Specified by:
getScheduleDetailDisplayin interfaceIrisScheduler
-
generateSchedulerTimes
Description copied from interface:IrisSchedulerGenerate 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:
generateSchedulerTimesin interfaceIrisScheduler- Parameters:
lookPastTime- the time in millis past which the scheduling engine looks for the next start time, or null if none is desiredqueryInfos- the controller's query information Map
-
updateDependencyState
Description copied from interface:IrisSchedulerFor a dependent query, update the dependency state with the passed in state, and indicate if all required dependencies have been met.- Specified by:
updateDependencyStatein interfaceIrisScheduler- Parameters:
serial- the serial of the dependency querystatus- 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:IrisSchedulerCheck if the dependency conditions for running have been met.- Specified by:
areConditionsMetin interfaceIrisScheduler- Returns:
- true if the query has met it dependency conditions
-
validate
Description copied from interface:IrisSchedulerValidate the scheduling.- Specified by:
validatein interfaceIrisScheduler- Overrides:
validatein classIrisQueryScheduler- Parameters:
allConfigurations- a map of all current query configurations which can be used for additional validation
-
getRunOnFailure
public boolean getRunOnFailure()Description copied from interface:IrisSchedulerFor a dependent query, indicates whether the query should run after a failure instead of after a success.- Specified by:
getRunOnFailurein interfaceIrisScheduler- 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:IrisSchedulerIndicates 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:
shouldRestartWhenRunningin interfaceIrisScheduler- Overrides:
shouldRestartWhenRunningin classIrisQueryScheduler- Returns:
- true if the query should be restarted when its dependent-on condition is met
-
getDependentOnQuerySerials
Description copied from interface:IrisSchedulerReturn the list of query serials on which this query is dependent.- Specified by:
getDependentOnQuerySerialsin interfaceIrisScheduler- Returns:
- the dependent-on query serial list, or null if this is not a dependent query
-
setDependentOnQuerySerials
Description copied from interface:IrisSchedulerSet the dependent-on query serials. For example, this may be done when importing queries from another controller.- Specified by:
setDependentOnQuerySerialsin interfaceIrisScheduler- Parameters:
newDependentOnQuerySerials- the new dependency list
-
hasStartTime
public boolean hasStartTime()Description copied from class:IrisQuerySchedulerReturn true if the scheduling has a determinable start time.- Overrides:
hasStartTimein classIrisQueryScheduler- Returns:
- true if the scheduling has a determinable start time, false otherwise
-
isRunOnAny
public boolean isRunOnAny() -
getDeadlineStartTime
-
getDeadlineStopTime
-
isRunEvery
public boolean isRunEvery()
-