Class JdbcTaskRepository
- java.lang.Object
-
- com.github.kagkarlsson.scheduler.jdbc.JdbcTaskRepository
-
- All Implemented Interfaces:
TaskRepository
public class JdbcTaskRepository extends Object implements TaskRepository
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_TABLE_NAME
-
Constructor Summary
Constructors Modifier Constructor Description protectedJdbcTaskRepository(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
-
-
-
Field Detail
-
DEFAULT_TABLE_NAME
public static final String DEFAULT_TABLE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 Detail
-
createIfNotExists
public boolean createIfNotExists(SchedulableInstance instance)
- Specified by:
createIfNotExistsin interfaceTaskRepository
-
replace
public Instant replace(Execution toBeReplaced, SchedulableInstance newInstance)
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
public void getScheduledExecutions(ScheduledExecutionsFilter filter, Consumer<Execution> consumer)
- Specified by:
getScheduledExecutionsin interfaceTaskRepository
-
getScheduledExecutions
public void getScheduledExecutions(ScheduledExecutionsFilter filter, String taskName, Consumer<Execution> consumer)
- Specified by:
getScheduledExecutionsin interfaceTaskRepository
-
getDue
public List<Execution> getDue(Instant now, int limit)
- Specified by:
getDuein interfaceTaskRepository
-
lockAndGetDue
public List<Execution> lockAndGetDue(Instant now, int limit)
- Specified by:
lockAndGetDuein interfaceTaskRepository
-
remove
public void remove(Execution execution)
- 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
public Optional<Execution> pick(Execution e, Instant timePicked)
- Specified by:
pickin interfaceTaskRepository
-
getDeadExecutions
public List<Execution> getDeadExecutions(Instant olderThan)
- Specified by:
getDeadExecutionsin interfaceTaskRepository
-
updateHeartbeat
public void updateHeartbeat(Execution e, Instant newHeartbeat)
- Specified by:
updateHeartbeatin interfaceTaskRepository
-
getExecutionsFailingLongerThan
public List<Execution> getExecutionsFailingLongerThan(Duration interval)
- Specified by:
getExecutionsFailingLongerThanin interfaceTaskRepository
-
getExecution
public Optional<Execution> getExecution(TaskInstance taskInstance)
-
getExecution
public Optional<Execution> getExecution(String taskName, String taskInstanceId)
- Specified by:
getExecutionin interfaceTaskRepository
-
removeExecutions
public int removeExecutions(String taskName)
- Specified by:
removeExecutionsin interfaceTaskRepository
-
checkSupportsLockAndFetch
public void checkSupportsLockAndFetch()
- Specified by:
checkSupportsLockAndFetchin interfaceTaskRepository
-
-