Package org.jobrunr.storage.nosql.mongo
Class MongoDBStorageProvider
- java.lang.Object
-
- org.jobrunr.storage.AbstractStorageProvider
-
- org.jobrunr.storage.nosql.mongo.MongoDBStorageProvider
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,NoSqlStorageProvider
,StorageProvider
- Direct Known Subclasses:
AmazonDocumentDBStorageProvider
public class MongoDBStorageProvider extends AbstractStorageProvider implements NoSqlStorageProvider
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_DB_NAME
-
Fields inherited from interface org.jobrunr.storage.StorageProvider
BATCH_SIZE
-
-
Constructor Summary
Constructors Constructor Description MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, StorageProviderUtils.DatabaseOptions databaseOptions)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, RateLimiter changeListenerNotificationRateLimit)
MongoDBStorageProvider(java.lang.String hostName, int port)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
long
countRecurringJobs()
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()
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)
void
publishTotalAmountOfSucceededJobs(int amount)
boolean
recurringJobExists(java.lang.String recurringJobId, StateName... states)
int
removeTimedOutBackgroundJobServers(java.time.Instant heartbeatOlderThan)
java.util.List<Job>
save(java.util.List<Job> jobs)
Job
save(Job job)
void
saveMetadata(JobRunrMetadata metadata)
RecurringJob
saveRecurringJob(RecurringJob recurringJob)
void
setJobMapper(JobMapper jobMapper)
void
setUpStorageProvider(StorageProviderUtils.DatabaseOptions databaseOptions)
This method allows to reinitialize the StorageProvider.boolean
signalBackgroundJobServerAlive(BackgroundJobServerStatus serverStatus)
void
signalBackgroundJobServerStopped(BackgroundJobServerStatus serverStatus)
static java.lang.String
toMongoId(java.lang.String id)
-
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
-
DEFAULT_DB_NAME
public static final java.lang.String DEFAULT_DB_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MongoDBStorageProvider
public MongoDBStorageProvider(java.lang.String hostName, int port)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, StorageProviderUtils.DatabaseOptions databaseOptions)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, RateLimiter changeListenerNotificationRateLimit)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
-
MongoDBStorageProvider
public MongoDBStorageProvider(com.mongodb.client.MongoClient mongoClient, java.lang.String dbName, java.lang.String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit)
-
-
Method Detail
-
setJobMapper
public void setJobMapper(JobMapper jobMapper)
- Specified by:
setJobMapper
in interfaceStorageProvider
-
setUpStorageProvider
public void setUpStorageProvider(StorageProviderUtils.DatabaseOptions databaseOptions)
Description copied from interface:StorageProvider
This method allows to reinitialize the StorageProvider. It can be used if you are using Flyway or Liquibase to setup your database manually. By default, this method is automatically called on construction of the StorageProvider- Specified by:
setUpStorageProvider
in interfaceStorageProvider
- Parameters:
databaseOptions
- defines whether to set up the StorageProvider or validate whether the StorageProvider is set up correctly.
-
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 job)
- Specified by:
save
in interfaceStorageProvider
-
deletePermanently
public int deletePermanently(java.util.UUID id)
- Specified by:
deletePermanently
in interfaceStorageProvider
-
getJobById
public Job getJobById(java.util.UUID id)
- Specified by:
getJobById
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, 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
-
getJobs
public java.util.List<Job> getJobs(StateName state, PageRequest pageRequest)
- Specified by:
getJobs
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
-
countRecurringJobs
public long countRecurringJobs()
- Specified by:
countRecurringJobs
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
-
toMongoId
public static java.lang.String toMongoId(java.lang.String id)
-
-