public DistributedLock(DistributedLockOptions options) { _options = options; _lockName = typeof(T).FullName ?? Guid.NewGuid().ToString("N"); _mutex = new DynamoDBMutex( new AmazonDynamoDBClient( options.AwsAccessKeyId, options.AwsSecretAccessKey, options.Region), new DynamoDBMutexSettings { CreateTableIfNotExists = true, TableName = options.TableName }); _renewLeaseTimer.Interval = options.LeasePeriod.TotalMilliseconds / 2; _renewLeaseTimer.Elapsed += (sender, args) => RenewLease(); }