Package com.illumon.iris.controller
Class IrisQuerySchedulerTemporary
java.lang.Object
com.illumon.iris.controller.IrisQueryScheduler
com.illumon.iris.controller.IrisQuerySchedulerTemporary
- All Implemented Interfaces:
IrisScheduler
public class IrisQuerySchedulerTemporary extends IrisQueryScheduler implements IrisScheduler
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.controller.IrisQueryScheduler
IrisQueryScheduler.RestartWhenRunning
-
Field Summary
Fields Modifier and Type Field Description static String
TEMPORARY_DEPENDENT_QUERY_SERIAL_STRING
static String
TEMPORARY_EXPIRATION_TIME_MILLIS_STRING
static String
TEMPORARY_QUEUE_NAME_STRING
Fields inherited from class com.illumon.iris.controller.IrisQueryScheduler
DISABLED_PARSE_STRING, overnight, RESTART_COUNT_UNLIMITED, timeZone
Fields inherited from interface com.illumon.iris.controller.IrisScheduler
DELIMITER_TOKEN, SCHEDULER_TYPE_TOKEN
-
Constructor Summary
Constructors Constructor Description IrisQuerySchedulerTemporary()
IrisQuerySchedulerTemporary(String startTime, String stopTime, String timeZone, boolean schedulingDisabled, boolean repeatEnabled, String repeatInterval, boolean skipIfUnsuccessful, boolean stopTimeDisabled, int errorRestartCount, String temporaryQueueName, long expirationTimeMillis, List<Long> dependentOnQuerySerials, String restartDelayMinutes, IrisQueryScheduler.RestartWhenRunning restartWhenRunning)
-
Method Summary
Modifier and Type Method Description boolean
areConditionsMet()
Check if the dependency conditions for running have been met.boolean
equals(Object object)
void
generateSchedulerTimes(Long lookPastTime, Map<Long,PersistentQueryInfo> queryInfos)
Generate the next start/stop time values for this query.String[]
generateStringArrayFromScheduler()
List<Long>
getDependentOnQuerySerials()
Return the list of query serials on which this query is dependent.long
getExpirationTimeMillis()
For a temporary query, return the query's expiration time in millis.String
getScheduleDetailDisplay(String[] strings, Map<Long,PersistentQueryInfo> queryInfos)
String
getTemporaryQueueName()
For a temporary query, return the temporary queue name.boolean
hasStartTime()
Return true if the scheduling has a determinable start time.void
populateSchedulerFromStringArray(String[] strings)
boolean
shouldRestartWhenRunning()
Indicates whether a query should be restarted by the scheduler when running.boolean
updateDependencyState(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.void
validate(Map<Long,PersistentQueryInfo> allConfigurations)
Validate the scheduling.Methods inherited from class com.illumon.iris.controller.IrisQueryScheduler
getRepeatInterval, getRestartDelayMinutes, getRestartErrorCount, getRestartWhenRunning, getRestartWhenRunningValues, getSchedulingDisabled, getStartTime, getStartTimeDisplay, getStartTimeInMillis, getStartTimeOfDay, getStopTime, getStopTimeDisplay, getStopTimeInMillis, getStopTimeOfDay, getTimeZoneDisplay, getTimeZoneString, hasStopTime, isOvernight, isRepeatEnabled, isStartTimeFirstForDay, isStopTimeDisabled, skipIfUnsuccessful
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.controller.IrisScheduler
getRepeatInterval, getRestartDelayMinutes, getRestartErrorCount, getRunOnFailure, getSchedulingDisabled, getStartTimeDisplay, getStartTimeInMillis, getStartTimeOfDay, getStopTimeDisplay, getStopTimeInMillis, getStopTimeOfDay, getTimeZoneDisplay, getTimeZoneString, hasStopTime, isOvernight, isRepeatEnabled, isStartTimeFirstForDay, setDependentOnQuerySerials, skipIfUnsuccessful, updateDependencyState
-
Field Details
-
Constructor Details
-
IrisQuerySchedulerTemporary
public IrisQuerySchedulerTemporary() -
IrisQuerySchedulerTemporary
public IrisQuerySchedulerTemporary(String startTime, String stopTime, String timeZone, boolean schedulingDisabled, boolean repeatEnabled, String repeatInterval, boolean skipIfUnsuccessful, boolean stopTimeDisabled, int errorRestartCount, String temporaryQueueName, long expirationTimeMillis, List<Long> dependentOnQuerySerials, String restartDelayMinutes, IrisQueryScheduler.RestartWhenRunning restartWhenRunning)
-
-
Method Details
-
generateStringArrayFromScheduler
- Specified by:
generateStringArrayFromScheduler
in interfaceIrisScheduler
-
populateSchedulerFromStringArray
- Specified by:
populateSchedulerFromStringArray
in interfaceIrisScheduler
-
equals
- Overrides:
equals
in classIrisQueryScheduler
-
getScheduleDetailDisplay
public String getScheduleDetailDisplay(String[] strings, Map<Long,PersistentQueryInfo> queryInfos)- Specified by:
getScheduleDetailDisplay
in interfaceIrisScheduler
-
generateSchedulerTimes
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 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: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 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:IrisScheduler
Check if the dependency conditions for running have been met.- Specified by:
areConditionsMet
in interfaceIrisScheduler
- Returns:
- true if the query has met it dependency conditions
-
getTemporaryQueueName
Description copied from interface:IrisScheduler
For a temporary query, return the temporary queue name.- Specified by:
getTemporaryQueueName
in interfaceIrisScheduler
- Returns:
- the queue name, or null if it is not a temporary query
-
getExpirationTimeMillis
public long getExpirationTimeMillis()Description copied from interface:IrisScheduler
For a temporary query, return the query's expiration time in millis.- Specified by:
getExpirationTimeMillis
in interfaceIrisScheduler
- Returns:
- the query's expiration time in millis (i.e. the time from which it completes until it should be deleted)
-
validate
Description copied from interface:IrisScheduler
Validate the scheduling.- Specified by:
validate
in interfaceIrisScheduler
- Overrides:
validate
in classIrisQueryScheduler
- Parameters:
allConfigurations
- a map of all current query configurations which can be used for additional validation
-
getDependentOnQuerySerials
Description copied from interface:IrisScheduler
Return the list of query serials on which this query is dependent.- Specified by:
getDependentOnQuerySerials
in interfaceIrisScheduler
- Returns:
- the dependent-on query serial list, or null if this is not a dependent query
-
hasStartTime
public boolean hasStartTime()Description copied from class:IrisQueryScheduler
Return true if the scheduling has a determinable start time.- Overrides:
hasStartTime
in classIrisQueryScheduler
- Returns:
- true if the scheduling has a determinable start time, false otherwise
-
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 interfaceIrisScheduler
- Overrides:
shouldRestartWhenRunning
in classIrisQueryScheduler
- Returns:
- true if the query should be restarted when its dependent-on condition is met
-