diff --git a/README.md b/README.md index 0e1f7a8ae..acbb7262d 100644 --- a/README.md +++ b/README.md @@ -873,12 +873,36 @@ An HTML dashboard can be found at `http://127.0.0.1:4001/mod/dashboard/``` The Lock module implements a fair lock that can be used when lots of clients want access to a single resource. A lock can be associated with a name. -The value is unique so if a lock tries to request a name that is already queued for a lock then it will find it and watch until that name obtains the lock. +The name is unique so if a lock tries to request a name that is already queued for a lock then it will find it and watch until that name obtains the lock. If you lock the same name on a key from two separate curl sessions they'll both return at the same time. Here's the API: -**Retrieve the current value for the "customer1" lock.** +**Acquire a lock (with no name) for "customer1"** + +```sh +curl -X POST http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 +``` + +**Acquire a lock for "customer1" that is associated with the name "bar"** + +```sh +curl -X POST http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d name=bar +``` + +**Renew the TTL on the "customer1" lock for index 2** + +```sh +curl -X PUT http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d index=2 +``` + +**Renew the TTL on the "customer1" lock for name "customer1"** + +```sh +curl -X PUT http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d name=bar +``` + +**Retrieve the current name for the "customer1" lock.** ```sh curl http://127.0.0.1:4001/mod/v2/lock/customer1 @@ -890,40 +914,16 @@ curl http://127.0.0.1:4001/mod/v2/lock/customer1 curl http://127.0.0.1:4001/mod/v2/lock/customer1?field=index ``` -**Acquire a lock (with no value) for "customer1"** - -```sh -curl -X POST http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -``` - -**Acquire a lock for "customer1" that is associated with the value "bar"** - -```sh -curl -X POST http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d value=bar -``` - -**Renew the TTL on the "customer1" lock for index 2** - -```sh -curl -X PUT http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d index=2 -``` - -**Renew the TTL on the "customer1" lock for value "customer1"** - -```sh -curl -X PUT http://127.0.0.1:4001/mod/v2/lock/customer1?ttl=60 -d value=bar -``` - **Delete the "customer1" lock with the index 2** ```sh curl -X DELETE http://127.0.0.1:4001/mod/v2/lock/customer1?index=customer1 ``` -**Delete the "customer1" lock with the value "bar"** +**Delete the "customer1" lock with the name "bar"** ```sh -curl -X DELETE http://127.0.0.1:4001/mod/v2/lock/customer1?value=bar +curl -X DELETE http://127.0.0.1:4001/mod/v2/lock/customer1?name=bar ``` ## Contributing