public static class MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder
extends java.lang.Object
public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withConfiguration(momento.sdk.config.Configuration configuration)
public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withCredentialProvider(momento.sdk.auth.CredentialProvider credentialProvider)
public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withTotalNumBackgroundThreadsForHeartbeating(int totalNumBackgroundThreadsForHeartbeating)
MomentoLockClientHeartbeatHandler so that individual locks heartbeat in parallel. This might
be important as you don't want one thread to play catchup while heartbeating, eventually leading to locks being
released. The default value for this is 1.totalNumBackgroundThreadsForHeartbeating - public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withTotalNumThreadsForAcquiringLocks(int totalNumThreadsForAcquiringLocks)
totalNumThreadsForAcquiringLocks - public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withPartitionKeyName(java.lang.String partitionKeyName)
partitionKeyName - The partition key name. If not specified, the default partition key name of "key" is used.public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withSortKeyName(java.lang.String sortKeyName)
sortKeyName - The sort key name. If not specified, we assume that the cache keys do not have a sort key defined.
Sort keys in Momento only play the role of concatenating with the partition key to form a unique
cache key. This will stay true until Momento has query and scan semantics available.public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withOwnerName(java.lang.String ownerName)
ownerName - The person that is acquiring the lock (for example, hostname.ec2.aws)public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withLeaseDuration(java.lang.Long leaseDuration)
leaseDuration - The length of time that the lease for the lock will be
granted for. If this is set to, for example, 30 seconds,
then the lock will expire if the heartbeat is not sent for
at least 30 seconds (which would happen if the box or the
heartbeat thread dies, for example.)public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withHeartbeatPeriod(java.lang.Long heartbeatPeriod)
heartbeatPeriod - How often to update Momento to note that the instance is
still running (recommendation is to make this at least 3
times smaller than the leaseDuration -- for example
heartBeatPeriod=1 second, leaseDuration=10 seconds could
be a reasonable configuration, make sure to include a
buffer for network latency.)public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withTimeUnit(java.util.concurrent.TimeUnit timeUnit)
timeUnit - What time unit to use for all times in this object, including
heartbeatPeriod and leaseDuration.public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withCreateHeartbeatBackgroundThread(java.lang.Boolean createHeartbeatBackgroundThread)
createHeartbeatBackgroundThread - Whether or not to create a thread to automatically
heartbeat (if false, you must call sendHeartbeat manually)public MomentoDynamoDBLockClientOptions.MomentoDynamoDBLockClientOptionsBuilder withHoldLockOnServiceUnavailable(java.lang.Boolean holdLockOnServiceUnavailable)
holdLockOnServiceUnavailable - Whether or not to hold the lock if Momento Service is unavailablepublic MomentoDynamoDBLockClientOptions build()