Package com.github.kagkarlsson.scheduler
Class SchedulerClient.StandardSchedulerClient
java.lang.Object
com.github.kagkarlsson.scheduler.SchedulerClient.StandardSchedulerClient
- All Implemented Interfaces:
SchedulerClient
- Enclosing interface:
- SchedulerClient
public static class SchedulerClient.StandardSchedulerClient
extends Object
implements SchedulerClient
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.github.kagkarlsson.scheduler.SchedulerClient
SchedulerClient.Builder, SchedulerClient.ScheduleOptions, SchedulerClient.SchedulerClientName, SchedulerClient.StandardSchedulerClient -
Field Summary
FieldsFields inherited from interface com.github.kagkarlsson.scheduler.SchedulerClient
DEFAULT_BATCH_SIZE -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel(TaskInstanceId taskInstanceId) Removes/Cancels an execution.voidfetchScheduledExecutions(ScheduledExecutionsFilter filter, Consumer<ScheduledExecution<Object>> consumer) voidfetchScheduledExecutions(Consumer<ScheduledExecution<Object>> consumer) Gets all scheduled executions and supplies them to the provided Consumer.<T> voidfetchScheduledExecutionsForTask(String taskName, Class<T> dataClass, ScheduledExecutionsFilter filter, Consumer<ScheduledExecution<T>> consumer) <T> voidfetchScheduledExecutionsForTask(String taskName, Class<T> dataClass, Consumer<ScheduledExecution<T>> consumer) Gets all scheduled executions for a task and supplies them to the provided Consumer.getScheduledExecution(TaskInstanceId taskInstanceId) Gets the details for a specific scheduled execution.<T> booleanreschedule(SchedulableInstance<T> schedulableInstance) Update an existing execution with a new execution-time and new task-data.booleanreschedule(TaskInstanceId taskInstanceId, Instant newExecutionTime) Update an existing execution to a new execution-time.<T> booleanreschedule(TaskInstanceId taskInstanceId, Instant newExecutionTime, T newData) Update an existing execution with a new execution-time and new task-data.<T> voidschedule(SchedulableInstance<T> schedulableInstance) <T> booleanschedule(SchedulableInstance<T> schedulableInstance, SchedulerClient.ScheduleOptions whenExists) Schedule a new execution for the given task instance.<T> voidschedule(TaskInstance<T> taskInstance, Instant executionTime) Schedule a new execution if task instance does not already exists.<T> booleanschedule(TaskInstance<T> taskInstance, Instant executionTime, SchedulerClient.ScheduleOptions scheduleOptions) Schedule a new execution for the given task instance.voidscheduleBatch(List<SchedulableInstance<?>> schedulableInstances) Schedule a batch of executions.voidscheduleBatch(List<TaskInstance<?>> taskInstances, Instant executionTime) Schedule a batch of executions.<T> booleanscheduleIfNotExists(SchedulableInstance<T> schedulableInstance) Schedule a new execution if task instance does not already exists.<T> booleanscheduleIfNotExists(TaskInstance<T> taskInstance, Instant executionTime) Schedule a new execution if task instance does not already exists.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.github.kagkarlsson.scheduler.SchedulerClient
getScheduledExecutions, getScheduledExecutions, getScheduledExecutionsForTask, getScheduledExecutionsForTask, getScheduledExecutionsForTask, scheduleBatch, scheduleBatch
-
Field Details
-
taskRepository
-
-
Method Details
-
schedule
Description copied from interface:SchedulerClientSchedule a new execution if task instance does not already exists.- Specified by:
schedulein interfaceSchedulerClient- Parameters:
taskInstance- Task-instance, optionally with dataexecutionTime- Instant it should run- See Also:
-
scheduleIfNotExists
Description copied from interface:SchedulerClientSchedule a new execution if task instance does not already exists.- Specified by:
scheduleIfNotExistsin interfaceSchedulerClient- Parameters:
taskInstance- Task-instance, optionally with dataexecutionTime- Instant it should run- Returns:
- true if scheduled successfully
- See Also:
-
scheduleIfNotExists
Description copied from interface:SchedulerClientSchedule a new execution if task instance does not already exists.- Specified by:
scheduleIfNotExistsin interfaceSchedulerClient- Parameters:
schedulableInstance- Task-instance and time it should run- Returns:
- true if scheduled successfully
- See Also:
-
scheduleBatch
Description copied from interface:SchedulerClientSchedule a batch of executions. If any of the executions already exists, the scheduling will fail and an exception will be thrown.- Specified by:
scheduleBatchin interfaceSchedulerClient- Parameters:
taskInstances- Task-instance to schedule, optionally with dataexecutionTime- Instant it should run- See Also:
-
scheduleBatch
Description copied from interface:SchedulerClientSchedule a batch of executions. If any of the executions already exists, the scheduling will fail and an exception will be thrown.- Specified by:
scheduleBatchin interfaceSchedulerClient- Parameters:
schedulableInstances- Task-instances with individual execution-times- See Also:
-
schedule
- Specified by:
schedulein interfaceSchedulerClient
-
schedule
public <T> boolean schedule(TaskInstance<T> taskInstance, Instant executionTime, SchedulerClient.ScheduleOptions scheduleOptions) Description copied from interface:SchedulerClientSchedule a new execution for the given task instance.If the task instance already exists, the specified policy in
scheduleOptionsapplies.An exception is thrown if the execution is currently running.
- Specified by:
schedulein interfaceSchedulerClient- Parameters:
taskInstance- Task-instance, optionally with dataexecutionTime- Instant it should runscheduleOptions- policy for when the instance exists- Returns:
- true if the task-instance actually was scheduled
- See Also:
-
schedule
public <T> boolean schedule(SchedulableInstance<T> schedulableInstance, SchedulerClient.ScheduleOptions whenExists) Description copied from interface:SchedulerClientSchedule a new execution for the given task instance.If the task instance already exists, the specified policy in
scheduleOptionsapplies.An exception is thrown if the execution is currently running.
- Specified by:
schedulein interfaceSchedulerClient- Parameters:
schedulableInstance- Task-instance and time it should runwhenExists- policy for when the instance exists- Returns:
- true if the task-instance actually was scheduled
- See Also:
-
reschedule
Description copied from interface:SchedulerClientUpdate an existing execution to a new execution-time. If the execution does not exist or if it is currently running, an exception is thrown.- Specified by:
reschedulein interfaceSchedulerClient- Parameters:
taskInstanceId- Task-instance to reschedule, expected to existnewExecutionTime- the new execution-time- Returns:
- true if rescheduled successfully
- See Also:
-
reschedule
Description copied from interface:SchedulerClientUpdate an existing execution with a new execution-time and new task-data. If the execution does not exist or if it is currently running, an exception is thrown.- Specified by:
reschedulein interfaceSchedulerClient- Parameters:
schedulableInstance- the updated instance- Returns:
- true if rescheduled successfully
-
reschedule
Description copied from interface:SchedulerClientUpdate an existing execution with a new execution-time and new task-data. If the execution does not exist or if it is currently running, an exception is thrown.- Specified by:
reschedulein interfaceSchedulerClientnewExecutionTime- the new execution-timenewData- the new task-data- Returns:
- true if rescheduled successfully
- See Also:
-
cancel
Description copied from interface:SchedulerClientRemoves/Cancels an execution.- Specified by:
cancelin interfaceSchedulerClient- See Also:
-
fetchScheduledExecutions
Description copied from interface:SchedulerClientGets all scheduled executions and supplies them to the provided Consumer. A Consumer is used to avoid forcing the SchedulerClient to load all executions in memory. Currently running executions are not returned.- Specified by:
fetchScheduledExecutionsin interfaceSchedulerClient- Parameters:
consumer- Consumer for the executions
-
fetchScheduledExecutions
public void fetchScheduledExecutions(ScheduledExecutionsFilter filter, Consumer<ScheduledExecution<Object>> consumer) - Specified by:
fetchScheduledExecutionsin interfaceSchedulerClient
-
fetchScheduledExecutionsForTask
public <T> void fetchScheduledExecutionsForTask(String taskName, Class<T> dataClass, Consumer<ScheduledExecution<T>> consumer) Description copied from interface:SchedulerClientGets all scheduled executions for a task and supplies them to the provided Consumer. A Consumer is used to avoid forcing the SchedulerClient to load all executions in memory. Currently running executions are not returned.- Specified by:
fetchScheduledExecutionsForTaskin interfaceSchedulerClient- Parameters:
taskName- the name of the task to get scheduled-executions fordataClass- the task data-class the data will be serialized and cast toconsumer- Consumer for the executions
-
fetchScheduledExecutionsForTask
public <T> void fetchScheduledExecutionsForTask(String taskName, Class<T> dataClass, ScheduledExecutionsFilter filter, Consumer<ScheduledExecution<T>> consumer) - Specified by:
fetchScheduledExecutionsForTaskin interfaceSchedulerClient
-
getScheduledExecution
Description copied from interface:SchedulerClientGets the details for a specific scheduled execution. Currently running executions are also returned.- Specified by:
getScheduledExecutionin interfaceSchedulerClient- Returns:
- Optional.empty() if no matching execution found
- See Also:
-