Class MongoDBPartitionedStorageProvider
- java.lang.Object
-
- cn.boboweike.carrot.storage.AbstractPartitionedStorageProvider
-
- cn.boboweike.carrot.storage.nosql.mongo.MongoDBPartitionedStorageProvider
-
- All Implemented Interfaces:
PartitionedStorageProvider,AutoCloseable
public class MongoDBPartitionedStorageProvider extends AbstractPartitionedStorageProvider implements PartitionedStorageProvider
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_DB_NAME-
Fields inherited from interface cn.boboweike.carrot.storage.PartitionedStorageProvider
BATCH_SIZE, DEFAULT_NUM_OF_PARTITIONS, PARTITION_HINT_KEY, PARTITION_PREFIX
-
-
Constructor Summary
Constructors Constructor Description MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, StorageProviderUtils.DatabaseOptions databaseOptions, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)MongoDBPartitionedStorageProvider(String connectionString)MongoDBPartitionedStorageProvider(String connectionString, int totalNumOfPartitions)
-
Method Summary
-
Methods inherited from class cn.boboweike.carrot.storage.AbstractPartitionedStorageProvider
addTaskStorageOnChangeListener, close, getName, notifyMetadataChangeListeners, notifyMetadataChangeListeners, notifyTaskStatsOnChangeListeners, notifyTaskStatsOnChangeListenersIf, removeTaskStorageOnChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface cn.boboweike.carrot.storage.PartitionedStorageProvider
addTaskStorageOnChangeListener, close, getName, getTaskById, removeTaskStorageOnChangeListener
-
-
-
-
Field Detail
-
DEFAULT_DB_NAME
public static final String DEFAULT_DB_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(String connectionString)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(String connectionString, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, StorageProviderUtils.DatabaseOptions databaseOptions, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)
-
MongoDBPartitionedStorageProvider
public MongoDBPartitionedStorageProvider(com.mongodb.client.MongoClient mongoClient, String dbName, String collectionPrefix, StorageProviderUtils.DatabaseOptions databaseOptions, RateLimiter changeListenerNotificationRateLimit, int totalNumOfPartitions)
-
-
Method Detail
-
getTotalNumOfPartitions
public int getTotalNumOfPartitions()
- Specified by:
getTotalNumOfPartitionsin interfacePartitionedStorageProvider
-
lockByPartition
public boolean lockByPartition(Integer partition, int durationInSeconds, String lockedBy)
- Specified by:
lockByPartitionin interfacePartitionedStorageProvider
-
extendLockByPartition
public boolean extendLockByPartition(Integer partition, int durationInSeconds, String lockedBy)
- Specified by:
extendLockByPartitionin interfacePartitionedStorageProvider
-
unlockByPartition
public boolean unlockByPartition(Integer partition)
- Specified by:
unlockByPartitionin interfacePartitionedStorageProvider
-
setTaskMapper
public void setTaskMapper(TaskMapper taskMapper)
- Specified by:
setTaskMapperin interfacePartitionedStorageProvider
-
setPartitioner
public void setPartitioner(Partitioner partitioner)
- Specified by:
setPartitionerin interfacePartitionedStorageProvider
-
setUpStorageProvider
public void setUpStorageProvider(StorageProviderUtils.DatabaseOptions databaseOptions)
Description copied from interface:PartitionedStorageProviderThis 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:
setUpStorageProviderin interfacePartitionedStorageProvider- Parameters:
databaseOptions- defines whether to set up the StorageProvider or validate whether the StorageProvider is set up correctly.
-
announceBackgroundTaskServer
public void announceBackgroundTaskServer(BackgroundTaskServerStatus serverStatus)
- Specified by:
announceBackgroundTaskServerin interfacePartitionedStorageProvider
-
signalBackgroundTaskServerAlive
public boolean signalBackgroundTaskServerAlive(BackgroundTaskServerStatus serverStatus)
- Specified by:
signalBackgroundTaskServerAlivein interfacePartitionedStorageProvider
-
signalBackgroundTaskServerStopped
public void signalBackgroundTaskServerStopped(BackgroundTaskServerStatus serverStatus)
- Specified by:
signalBackgroundTaskServerStoppedin interfacePartitionedStorageProvider
-
getBackgroundTaskServers
public List<BackgroundTaskServerStatus> getBackgroundTaskServers()
- Specified by:
getBackgroundTaskServersin interfacePartitionedStorageProvider
-
getLongestRunningBackgroundTaskServerId
public UUID getLongestRunningBackgroundTaskServerId()
- Specified by:
getLongestRunningBackgroundTaskServerIdin interfacePartitionedStorageProvider
-
removeTimedOutBackgroundTaskServers
public int removeTimedOutBackgroundTaskServers(Instant heartbeatOlderThan)
- Specified by:
removeTimedOutBackgroundTaskServersin interfacePartitionedStorageProvider
-
saveMetadata
public void saveMetadata(CarrotMetadata metadata)
- Specified by:
saveMetadatain interfacePartitionedStorageProvider
-
getMetadata
public List<CarrotMetadata> getMetadata(String name)
- Specified by:
getMetadatain interfacePartitionedStorageProvider
-
getMetadata
public CarrotMetadata getMetadata(String name, String owner)
- Specified by:
getMetadatain interfacePartitionedStorageProvider
-
deleteMetadata
public void deleteMetadata(String name)
- Specified by:
deleteMetadatain interfacePartitionedStorageProvider
-
save
public Task save(Task task)
- Specified by:
savein interfacePartitionedStorageProvider
-
saveByPartition
public Task saveByPartition(Task task, Integer partition)
- Specified by:
saveByPartitionin interfacePartitionedStorageProvider
-
deletePermanentlyByPartition
public int deletePermanentlyByPartition(UUID id, Integer partition)
- Specified by:
deletePermanentlyByPartitionin interfacePartitionedStorageProvider
-
getTaskById
public Task getTaskById(UUID id)
- Specified by:
getTaskByIdin interfacePartitionedStorageProvider
-
save
public List<Task> save(List<Task> tasks)
- Specified by:
savein interfacePartitionedStorageProvider
-
saveByPartition
public List<Task> saveByPartition(List<Task> tasks, Integer partition)
- Specified by:
saveByPartitionin interfacePartitionedStorageProvider
-
getTasksByPartition
public List<Task> getTasksByPartition(StateName state, Instant updatedBefore, PageRequest pageRequest, Integer partition)
- Specified by:
getTasksByPartitionin interfacePartitionedStorageProvider
-
getScheduledTasksByPartition
public List<Task> getScheduledTasksByPartition(Instant scheduledBefore, PageRequest pageRequest, Integer partition)
- Specified by:
getScheduledTasksByPartitionin interfacePartitionedStorageProvider
-
getTasksByPartition
public List<Task> getTasksByPartition(StateName state, PageRequest pageRequest, Integer partition)
- Specified by:
getTasksByPartitionin interfacePartitionedStorageProvider
-
getTaskPageByPartition
public Page<Task> getTaskPageByPartition(StateName state, PageRequest pageRequest, Integer partition)
- Specified by:
getTaskPageByPartitionin interfacePartitionedStorageProvider
-
deleteTasksPermanentlyByPartition
public int deleteTasksPermanentlyByPartition(StateName state, Instant updatedBefore, Integer partition)
- Specified by:
deleteTasksPermanentlyByPartitionin interfacePartitionedStorageProvider
-
getDistinctTaskSignatures
public Set<String> getDistinctTaskSignatures(StateName... states)
- Specified by:
getDistinctTaskSignaturesin interfacePartitionedStorageProvider
-
existsByPartition
public boolean existsByPartition(TaskDetails taskDetails, Integer partition, StateName... states)
- Specified by:
existsByPartitionin interfacePartitionedStorageProvider
-
recurringTaskExistsByPartition
public boolean recurringTaskExistsByPartition(String recurringTaskId, Integer partition, StateName... states)
- Specified by:
recurringTaskExistsByPartitionin interfacePartitionedStorageProvider
-
saveRecurringTask
public RecurringTask saveRecurringTask(RecurringTask recurringTask)
- Specified by:
saveRecurringTaskin interfacePartitionedStorageProvider
-
saveRecurringTaskByPartition
public RecurringTask saveRecurringTaskByPartition(RecurringTask recurringTask, Integer partition)
-
getRecurringTasksByPartition
public List<RecurringTask> getRecurringTasksByPartition(Integer partition)
- Specified by:
getRecurringTasksByPartitionin interfacePartitionedStorageProvider
-
getRecurringTasks
public List<RecurringTask> getRecurringTasks()
- Specified by:
getRecurringTasksin interfacePartitionedStorageProvider
-
countRecurringTasksByPartition
public long countRecurringTasksByPartition(Integer partition)
- Specified by:
countRecurringTasksByPartitionin interfacePartitionedStorageProvider
-
deleteRecurringTask
public int deleteRecurringTask(String id)
- Specified by:
deleteRecurringTaskin interfacePartitionedStorageProvider
-
getTaskStatsData
public TaskStatsData getTaskStatsData()
- Specified by:
getTaskStatsDatain interfacePartitionedStorageProvider
-
publishTotalAmountOfSucceededTasks
public void publishTotalAmountOfSucceededTasks(int amount)
- Specified by:
publishTotalAmountOfSucceededTasksin interfacePartitionedStorageProvider
-
-