Package org.jobrunr.storage
Class ThreadSafeStorageProvider
- java.lang.Object
-
- org.jobrunr.storage.ThreadSafeStorageProvider
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,StorageProvider
public class ThreadSafeStorageProvider extends java.lang.Object implements StorageProvider
-
-
Constructor Summary
Constructors Constructor Description ThreadSafeStorageProvider(StorageProvider storageProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addJobStorageOnChangeListener(StorageProviderChangeListener listener)
void
announceBackgroundJobServer(BackgroundJobServerStatus serverStatus)
void
close()
java.lang.Long
countJobs(StateName state)
int
delete(java.util.UUID id)
This method changes the state of the job to the DeletedState - it does not permanently delete it yetint
deleteJobsPermanently(StateName state, java.time.Instant updatedBefore)
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)
Job
getJobById(JobId jobId)
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.List<RecurringJob>
getRecurringJobs()
java.util.List<Job>
getScheduledJobs(java.time.Instant scheduledBefore, PageRequest pageRequest)
void
publishJobStatCounter(StateName state, int amount)
boolean
recurringJobExists(java.lang.String recurringJobId, StateName... states)
void
removeJobStorageOnChangeListener(StorageProviderChangeListener listener)
int
removeTimedOutBackgroundJobServers(java.time.Instant heartbeatOlderThan)
java.util.List<Job>
save(java.util.List<Job> jobs)
Job
save(Job job)
RecurringJob
saveRecurringJob(RecurringJob recurringJob)
void
setJobMapper(JobMapper jobMapper)
boolean
signalBackgroundJobServerAlive(BackgroundJobServerStatus serverStatus)
void
signalBackgroundJobServerStopped(BackgroundJobServerStatus serverStatus)
-
-
-
Constructor Detail
-
ThreadSafeStorageProvider
public ThreadSafeStorageProvider(StorageProvider storageProvider)
-
-
Method Detail
-
addJobStorageOnChangeListener
public void addJobStorageOnChangeListener(StorageProviderChangeListener listener)
- Specified by:
addJobStorageOnChangeListener
in interfaceStorageProvider
-
removeJobStorageOnChangeListener
public void removeJobStorageOnChangeListener(StorageProviderChangeListener listener)
- Specified by:
removeJobStorageOnChangeListener
in interfaceStorageProvider
-
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
-
removeTimedOutBackgroundJobServers
public int removeTimedOutBackgroundJobServers(java.time.Instant heartbeatOlderThan)
- Specified by:
removeTimedOutBackgroundJobServers
in interfaceStorageProvider
-
save
public Job save(Job job)
- Specified by:
save
in interfaceStorageProvider
-
save
public java.util.List<Job> save(java.util.List<Job> jobs)
- Specified by:
save
in interfaceStorageProvider
-
delete
public int delete(java.util.UUID id)
Description copied from interface:StorageProvider
This method changes the state of the job to the DeletedState - it does not permanently delete it yet- Specified by:
delete
in interfaceStorageProvider
- Parameters:
id
- the id of the job
-
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
-
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
-
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
-
deleteRecurringJob
public int deleteRecurringJob(java.lang.String id)
- Specified by:
deleteRecurringJob
in interfaceStorageProvider
-
getJobStats
public JobStats getJobStats()
- Specified by:
getJobStats
in interfaceStorageProvider
-
publishJobStatCounter
public void publishJobStatCounter(StateName state, int amount)
- Specified by:
publishJobStatCounter
in interfaceStorageProvider
-
getJobById
public Job getJobById(JobId jobId)
- Specified by:
getJobById
in interfaceStorageProvider
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceStorageProvider
-
-