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
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.sql.DataSource
dataSource
protected Dialect
dialect
protected java.lang.String
tablePrefix
-
Constructor Summary
Constructors Constructor Description DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, java.lang.String tablePrefix, StorageProviderUtils.DatabaseOptions databaseOptions)
DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, StorageProviderUtils.DatabaseOptions databaseOptions)
DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
protected BackgroundJobServerTable
backgroundJobServerTable(java.sql.Connection connection)
protected void
createDBIfNecessary()
int
deleteJobsPermanently(StateName state, java.time.Instant updatedBefore)
void
deleteMetadata(java.lang.String name)
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 name)
JobRunrMetadata
getMetadata(java.lang.String name, java.lang.String owner)
java.util.List<RecurringJob>
getRecurringJobs()
java.util.List<Job>
getScheduledJobs(java.time.Instant scheduledBefore, PageRequest pageRequest)
protected JobStatsView
jobStatsView(java.sql.Connection connection)
protected JobTable
jobTable(java.sql.Connection connection)
protected MetadataTable
metadataTable(java.sql.Connection connection)
void
publishTotalAmountOfSucceededJobs(int amount)
boolean
recurringJobExists(java.lang.String recurringJobId, StateName... states)
protected RecurringJobTable
recurringJobTable(java.sql.Connection connection)
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, getName, 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, getJobById, getName, removeJobStorageOnChangeListener
-
-
-
-
Field Detail
-
dataSource
protected final javax.sql.DataSource dataSource
-
dialect
protected final Dialect dialect
-
tablePrefix
protected final java.lang.String tablePrefix
-
-
Constructor Detail
-
DefaultSqlStorageProvider
public DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, StorageProviderUtils.DatabaseOptions databaseOptions)
-
DefaultSqlStorageProvider
public DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, java.lang.String tablePrefix, StorageProviderUtils.DatabaseOptions databaseOptions)
-
DefaultSqlStorageProvider
public DefaultSqlStorageProvider(javax.sql.DataSource dataSource, Dialect dialect, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
-
-
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 name)
- Specified by:
getMetadata
in interfaceStorageProvider
-
getMetadata
public JobRunrMetadata getMetadata(java.lang.String name, java.lang.String owner)
- Specified by:
getMetadata
in interfaceStorageProvider
-
deleteMetadata
public void deleteMetadata(java.lang.String name)
- Specified by:
deleteMetadata
in interfaceStorageProvider
-
save
public Job save(Job jobToSave)
- Specified by:
save
in interfaceStorageProvider
-
save
public java.util.List<Job> save(java.util.List<Job> jobs)
- Specified by:
save
in interfaceStorageProvider
-
getJobById
public Job getJobById(java.util.UUID id)
- Specified by:
getJobById
in interfaceStorageProvider
-
getScheduledJobs
public java.util.List<Job> getScheduledJobs(java.time.Instant scheduledBefore, PageRequest pageRequest)
- Specified by:
getScheduledJobs
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
-
getJobPage
public Page<Job> getJobPage(StateName state, PageRequest pageRequest)
- Specified by:
getJobPage
in interfaceStorageProvider
-
deletePermanently
public int deletePermanently(java.util.UUID id)
- Specified by:
deletePermanently
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(java.sql.Connection connection)
-
recurringJobTable
protected RecurringJobTable recurringJobTable(java.sql.Connection connection)
-
backgroundJobServerTable
protected BackgroundJobServerTable backgroundJobServerTable(java.sql.Connection connection)
-
metadataTable
protected MetadataTable metadataTable(java.sql.Connection connection)
-
jobStatsView
protected JobStatsView jobStatsView(java.sql.Connection connection)
-
-