Package org.jobrunr.storage.sql.common
Class DefaultSqlStorageProvider
- java.lang.Object
-
- org.jobrunr.storage.AbstractStorageProvider
-
- org.jobrunr.storage.sql.common.DefaultSqlStorageProvider
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,SqlStorageProvider
,StorageProvider
- Direct Known Subclasses:
DB2StorageProvider
,H2StorageProvider
,MariaDbStorageProvider
,OracleStorageProvider
,PostgresStorageProvider
,SqLiteStorageProvider
,SQLServerStorageProvider
public class DefaultSqlStorageProvider extends AbstractStorageProvider implements SqlStorageProvider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DefaultSqlStorageProvider.DatabaseOptions
-
Field Summary
Fields Modifier and Type Field Description protected DefaultSqlStorageProvider.DatabaseOptions
databaseOptions
protected javax.sql.DataSource
dataSource
protected JobMapper
jobMapper
-
Constructor Summary
Constructors Constructor Description DefaultSqlStorageProvider(javax.sql.DataSource dataSource)
DefaultSqlStorageProvider(javax.sql.DataSource dataSource, DefaultSqlStorageProvider.DatabaseOptions databaseOptions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
protected BackgroundJobServerTable
backgroundJobServerTable()
java.lang.Long
countJobs(StateName state)
protected void
createDBIfNecessary()
int
deleteJobsPermanently(StateName state, java.time.Instant updatedBefore)
void
deleteMetadata(java.lang.String key)
int
deletePermanently(java.util.UUID id)
int
deleteRecurringJob(java.lang.String id)
boolean
exists(JobDetails jobDetails, StateName... states)
java.util.List<BackgroundJobServerStatus>
getBackgroundJobServers()
protected DatabaseCreator
getDatabaseCreator()
java.util.Set<java.lang.String>
getDistinctJobSignatures(StateName... states)
Job
getJobById(java.util.UUID id)
Page<Job>
getJobPage(StateName state, PageRequest pageRequest)
java.util.List<Job>
getJobs(StateName state, java.time.Instant updatedBefore, PageRequest pageRequest)
java.util.List<Job>
getJobs(StateName state, PageRequest pageRequest)
JobStats
getJobStats()
java.util.UUID
getLongestRunningBackgroundJobServerId()
java.util.List<JobRunrMetadata>
getMetadata(java.lang.String key)
JobRunrMetadata
getMetadata(java.lang.String key, java.lang.String owner)
java.util.List<RecurringJob>
getRecurringJobs()
java.util.List<Job>
getScheduledJobs(java.time.Instant scheduledBefore, PageRequest pageRequest)
protected JobTable
jobTable()
protected MetadataTable
metadataTable()
void
publishTotalAmountOfSucceededJobs(int amount)
boolean
recurringJobExists(java.lang.String recurringJobId, StateName... states)
protected RecurringJobTable
recurringJobTable()
int
removeTimedOutBackgroundJobServers(java.time.Instant heartbeatOlderThan)
java.util.List<Job>
save(java.util.List<Job> jobs)
Job
save(Job jobToSave)
void
saveMetadata(JobRunrMetadata metadata)
RecurringJob
saveRecurringJob(RecurringJob recurringJob)
void
setJobMapper(JobMapper jobMapper)
boolean
signalBackgroundJobServerAlive(BackgroundJobServerStatus serverStatus)
void
signalBackgroundJobServerStopped(BackgroundJobServerStatus serverStatus)
-
Methods inherited from class org.jobrunr.storage.AbstractStorageProvider
addJobStorageOnChangeListener, close, delete, notifyJobStatsOnChangeListeners, notifyJobStatsOnChangeListenersIf, notifyMetadataChangeListeners, notifyMetadataChangeListeners, removeJobStorageOnChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jobrunr.storage.StorageProvider
addJobStorageOnChangeListener, close, delete, getJobById, removeJobStorageOnChangeListener
-
-
-
-
Field Detail
-
dataSource
protected final javax.sql.DataSource dataSource
-
databaseOptions
protected final DefaultSqlStorageProvider.DatabaseOptions databaseOptions
-
jobMapper
protected JobMapper jobMapper
-
-
Constructor Detail
-
DefaultSqlStorageProvider
public DefaultSqlStorageProvider(javax.sql.DataSource dataSource)
-
DefaultSqlStorageProvider
public DefaultSqlStorageProvider(javax.sql.DataSource dataSource, DefaultSqlStorageProvider.DatabaseOptions databaseOptions)
-
-
Method Detail
-
createDBIfNecessary
protected void createDBIfNecessary()
-
getDatabaseCreator
protected DatabaseCreator getDatabaseCreator()
-
setJobMapper
public void setJobMapper(JobMapper jobMapper)
- Specified by:
setJobMapper
in interfaceStorageProvider
-
announceBackgroundJobServer
public void announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
- Specified by:
announceBackgroundJobServer
in interfaceStorageProvider
-
signalBackgroundJobServerAlive
public boolean signalBackgroundJobServerAlive(BackgroundJobServerStatus serverStatus)
- Specified by:
signalBackgroundJobServerAlive
in interfaceStorageProvider
-
signalBackgroundJobServerStopped
public void signalBackgroundJobServerStopped(BackgroundJobServerStatus serverStatus)
- Specified by:
signalBackgroundJobServerStopped
in interfaceStorageProvider
-
getBackgroundJobServers
public java.util.List<BackgroundJobServerStatus> getBackgroundJobServers()
- Specified by:
getBackgroundJobServers
in interfaceStorageProvider
-
getLongestRunningBackgroundJobServerId
public java.util.UUID getLongestRunningBackgroundJobServerId()
- Specified by:
getLongestRunningBackgroundJobServerId
in interfaceStorageProvider
-
removeTimedOutBackgroundJobServers
public int removeTimedOutBackgroundJobServers(java.time.Instant heartbeatOlderThan)
- Specified by:
removeTimedOutBackgroundJobServers
in interfaceStorageProvider
-
saveMetadata
public void saveMetadata(JobRunrMetadata metadata)
- Specified by:
saveMetadata
in interfaceStorageProvider
-
getMetadata
public java.util.List<JobRunrMetadata> getMetadata(java.lang.String key)
- Specified by:
getMetadata
in interfaceStorageProvider
-
getMetadata
public JobRunrMetadata getMetadata(java.lang.String key, java.lang.String owner)
- Specified by:
getMetadata
in interfaceStorageProvider
-
deleteMetadata
public void deleteMetadata(java.lang.String key)
- Specified by:
deleteMetadata
in interfaceStorageProvider
-
getJobById
public Job getJobById(java.util.UUID id)
- Specified by:
getJobById
in interfaceStorageProvider
-
save
public Job save(Job jobToSave)
- Specified by:
save
in interfaceStorageProvider
-
deletePermanently
public int deletePermanently(java.util.UUID id)
- Specified by:
deletePermanently
in interfaceStorageProvider
-
save
public java.util.List<Job> save(java.util.List<Job> jobs)
- Specified by:
save
in interfaceStorageProvider
-
getJobs
public java.util.List<Job> getJobs(StateName state, PageRequest pageRequest)
- Specified by:
getJobs
in interfaceStorageProvider
-
getJobs
public java.util.List<Job> getJobs(StateName state, java.time.Instant updatedBefore, PageRequest pageRequest)
- Specified by:
getJobs
in interfaceStorageProvider
-
getScheduledJobs
public java.util.List<Job> getScheduledJobs(java.time.Instant scheduledBefore, PageRequest pageRequest)
- Specified by:
getScheduledJobs
in interfaceStorageProvider
-
countJobs
public java.lang.Long countJobs(StateName state)
- Specified by:
countJobs
in interfaceStorageProvider
-
getJobPage
public Page<Job> getJobPage(StateName state, PageRequest pageRequest)
- Specified by:
getJobPage
in interfaceStorageProvider
-
deleteJobsPermanently
public int deleteJobsPermanently(StateName state, java.time.Instant updatedBefore)
- Specified by:
deleteJobsPermanently
in interfaceStorageProvider
-
getDistinctJobSignatures
public java.util.Set<java.lang.String> getDistinctJobSignatures(StateName... states)
- Specified by:
getDistinctJobSignatures
in interfaceStorageProvider
-
exists
public boolean exists(JobDetails jobDetails, StateName... states)
- Specified by:
exists
in interfaceStorageProvider
-
recurringJobExists
public boolean recurringJobExists(java.lang.String recurringJobId, StateName... states)
- Specified by:
recurringJobExists
in interfaceStorageProvider
-
saveRecurringJob
public RecurringJob saveRecurringJob(RecurringJob recurringJob)
- Specified by:
saveRecurringJob
in interfaceStorageProvider
-
getRecurringJobs
public java.util.List<RecurringJob> getRecurringJobs()
- Specified by:
getRecurringJobs
in interfaceStorageProvider
-
deleteRecurringJob
public int deleteRecurringJob(java.lang.String id)
- Specified by:
deleteRecurringJob
in interfaceStorageProvider
-
getJobStats
public JobStats getJobStats()
- Specified by:
getJobStats
in interfaceStorageProvider
-
publishTotalAmountOfSucceededJobs
public void publishTotalAmountOfSucceededJobs(int amount)
- Specified by:
publishTotalAmountOfSucceededJobs
in interfaceStorageProvider
-
jobTable
protected JobTable jobTable()
-
recurringJobTable
protected RecurringJobTable recurringJobTable()
-
backgroundJobServerTable
protected BackgroundJobServerTable backgroundJobServerTable()
-
metadataTable
protected MetadataTable metadataTable()
-
-