Class JdbcTaskRepository
java.lang.Object
com.github.kagkarlsson.scheduler.jdbc.JdbcTaskRepository
- All Implemented Interfaces:
TaskRepository
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJdbcTaskRepository(JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Serializer serializer, com.github.kagkarlsson.jdbc.JdbcRunner jdbcRunner, Clock clock) JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Clock clock) JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Serializer serializer, Clock clock) JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Clock clock) -
Method Summary
Modifier and TypeMethodDescriptionvoidbooleancreateIfNotExists(SchedulableInstance instance) getDeadExecutions(Instant olderThan) getExecution(TaskInstance taskInstance) getExecution(String taskName, String taskInstanceId) getExecutionsFailingLongerThan(Duration interval) voidgetScheduledExecutions(ScheduledExecutionsFilter filter, String taskName, Consumer<Execution> consumer) voidgetScheduledExecutions(ScheduledExecutionsFilter filter, Consumer<Execution> consumer) lockAndGetDue(Instant now, int limit) voidintremoveExecutions(String taskName) replace(Execution toBeReplaced, SchedulableInstance newInstance) Instead of doing delete+insert, we allow updating an existing execution will all new fieldsbooleanreschedule(Execution execution, Instant nextExecutionTime, Object newData, Instant lastSuccess, Instant lastFailure, int consecutiveFailures) booleanreschedule(Execution execution, Instant nextExecutionTime, Instant lastSuccess, Instant lastFailure, int consecutiveFailures) voidupdateHeartbeat(Execution e, Instant newHeartbeat)
-
Field Details
-
DEFAULT_TABLE_NAME
- See Also:
-
-
Constructor Details
-
JdbcTaskRepository
public JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Clock clock) -
JdbcTaskRepository
public JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Clock clock) -
JdbcTaskRepository
public JdbcTaskRepository(DataSource dataSource, boolean commitWhenAutocommitDisabled, JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Serializer serializer, Clock clock) -
JdbcTaskRepository
protected JdbcTaskRepository(JdbcCustomization jdbcCustomization, String tableName, TaskResolver taskResolver, SchedulerName schedulerSchedulerName, Serializer serializer, com.github.kagkarlsson.jdbc.JdbcRunner jdbcRunner, Clock clock)
-
-
Method Details
-
createIfNotExists
- Specified by:
createIfNotExistsin interfaceTaskRepository
-
replace
Instead of doing delete+insert, we allow updating an existing execution will all new fields- Specified by:
replacein interfaceTaskRepository- Returns:
- the execution-time of the new execution
-
getScheduledExecutions
- Specified by:
getScheduledExecutionsin interfaceTaskRepository
-
getScheduledExecutions
public void getScheduledExecutions(ScheduledExecutionsFilter filter, String taskName, Consumer<Execution> consumer) - Specified by:
getScheduledExecutionsin interfaceTaskRepository
-
getDue
- Specified by:
getDuein interfaceTaskRepository
-
lockAndGetDue
- Specified by:
lockAndGetDuein interfaceTaskRepository
-
remove
- Specified by:
removein interfaceTaskRepository
-
reschedule
public boolean reschedule(Execution execution, Instant nextExecutionTime, Instant lastSuccess, Instant lastFailure, int consecutiveFailures) - Specified by:
reschedulein interfaceTaskRepository
-
reschedule
public boolean reschedule(Execution execution, Instant nextExecutionTime, Object newData, Instant lastSuccess, Instant lastFailure, int consecutiveFailures) - Specified by:
reschedulein interfaceTaskRepository
-
pick
- Specified by:
pickin interfaceTaskRepository
-
getDeadExecutions
- Specified by:
getDeadExecutionsin interfaceTaskRepository
-
updateHeartbeat
- Specified by:
updateHeartbeatin interfaceTaskRepository
-
getExecutionsFailingLongerThan
- Specified by:
getExecutionsFailingLongerThanin interfaceTaskRepository
-
getExecution
-
getExecution
- Specified by:
getExecutionin interfaceTaskRepository
-
removeExecutions
- Specified by:
removeExecutionsin interfaceTaskRepository
-
checkSupportsLockAndFetch
public void checkSupportsLockAndFetch()- Specified by:
checkSupportsLockAndFetchin interfaceTaskRepository
-