public class MongoLockProvider extends Object implements LockProvider
It uses a collection that contains documents like this:
{
"_id" : "lock name",
"lockUntil" : ISODate("2017-01-07T16:52:04.071Z"),
"lockedAt" : ISODate("2017-01-07T16:52:03.932Z"),
"lockedBy" : "host name"
}
lockedAt and lockedBy are just for troubleshooting and are not read by the code
| Constructor and Description |
|---|
MongoLockProvider(@NotNull com.mongodb.MongoClient mongo,
@NotNull String databaseName)
Uses Mongo to coordinate locks
|
MongoLockProvider(@NotNull com.mongodb.MongoClient mongo,
@NotNull String databaseName,
@NotNull String collectionName)
Uses Mongo to coordinate locks
|
MongoLockProvider(@NotNull com.mongodb.client.MongoCollection<org.bson.Document> collection)
Uses Mongo to coordinate locks
|
| Modifier and Type | Method and Description |
|---|---|
@NotNull Optional<SimpleLock> |
lock(@NotNull LockConfiguration lockConfiguration) |
public MongoLockProvider(@NotNull
@NotNull com.mongodb.MongoClient mongo,
@NotNull
@NotNull String databaseName)
mongo - Mongo to be useddatabaseName - database to be usedpublic MongoLockProvider(@NotNull
@NotNull com.mongodb.MongoClient mongo,
@NotNull
@NotNull String databaseName,
@NotNull
@NotNull String collectionName)
mongo - Mongo to be useddatabaseName - database to be usedcollectionName - collection to store the lockspublic MongoLockProvider(@NotNull
@NotNull com.mongodb.client.MongoCollection<org.bson.Document> collection)
collection - Mongo collection to be used@NotNull public @NotNull Optional<SimpleLock> lock(@NotNull @NotNull LockConfiguration lockConfiguration)
lock in interface LockProviderCopyright © 2020. All rights reserved.