diff --git a/README.md b/README.md index 4f2420c..69a04bc 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,22 @@ suo.lock do |token| end ``` +### Time To Live + +```ruby +Suo::Client::Redis.new("bar_resource", ttl: 10) #ttl in seconds +``` + +All locks are expired and the lock key is removed after the specified `ttl` time runs out. This would be the time since any resource for a given key was locked or unlocked. + +### Lock Release Removes Key + +```ruby +Suo::Client::Redis.new("bar_resource", lock_release_removes_key: true) +``` + +Normally, a key representing a set of resource locks is persisted indefinitely even when no resources are currently locked. When `lock_release_removes_key` is set to `true`, the key is removed when the last resource lock is released. This also means that when another lock is acquired the key has to be recreated. + ## TODO - more race condition tests