Package org.jobrunr.storage.nosql.redis
Class LettuceRedisStorageProvider
- java.lang.Object
-
- org.jobrunr.storage.AbstractStorageProvider
-
- org.jobrunr.storage.nosql.redis.LettuceRedisStorageProvider
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,NoSqlStorageProvider
,StorageProvider
@Beta public class LettuceRedisStorageProvider extends AbstractStorageProvider implements NoSqlStorageProvider
-
-
Constructor Summary
Constructors Constructor Description LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient)
LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, java.lang.String keyPrefix)
LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, java.lang.String keyPrefix, RateLimiter changeListenerNotificationRateLimit)
LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, RateLimiter changeListenerNotificationRateLimit)
LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool)
LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool, java.lang.String keyPrefix)
LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool, java.lang.String keyPrefix, RateLimiter changeListenerNotificationRateLimit)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
void
close()
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()
protected io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>
getConnection()
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 jobToSave)
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)
-
Methods inherited from class org.jobrunr.storage.AbstractStorageProvider
addJobStorageOnChangeListener, 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, getJobById, getName, removeJobStorageOnChangeListener
-
-
-
-
Constructor Detail
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, RateLimiter changeListenerNotificationRateLimit)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, java.lang.String keyPrefix)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(io.lettuce.core.RedisClient redisClient, java.lang.String keyPrefix, RateLimiter changeListenerNotificationRateLimit)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool, java.lang.String keyPrefix)
-
LettuceRedisStorageProvider
public LettuceRedisStorageProvider(org.apache.commons.pool2.ObjectPool<io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String>> pool, java.lang.String keyPrefix, 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 jobToSave)
- 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
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceStorageProvider
- Overrides:
close
in classAbstractStorageProvider
-
getConnection
protected io.lettuce.core.api.StatefulRedisConnection<java.lang.String,java.lang.String> getConnection()
-
-