Skip to content

Implements a simple semaphore that can be used to coordinate access to shared data from multiple concurrent hosts

License

Notifications You must be signed in to change notification settings

clearhaus/dynamodb-mutex

Repository files navigation

DynamoDB Mutex

Code Climate Dependency Status MIT License

Using DynamoDB, it implements a simple semaphore that can be used to coordinate access to shared data from multiple concurrent hosts or processes.

Usage

require 'dynamodb-mutex'

DynamoDBMutex.with_lock :your_lock do
   # Access to shared resource.
end

If no lock name (:your_lock above) is given, #with_lock uses 'default.lock'.

You can pass with_lock the following options:

  • :wait_for_other (default 1): Seconds to to wait for another process to release the lock.
  • :polling_interval (default 0.1): Seconds between retrials to acquire lock. Should be at least "(:wait_for_other / 5) * (no_of_instances - 1)".
  • :stale_after (default 10): Seconds after which the lock is considered stale and will be automatically deleted; set to "falsey" (nil or false) to disable.

About

Implements a simple semaphore that can be used to coordinate access to shared data from multiple concurrent hosts

Resources

License

Stars

Watchers

Forks

Packages

No packages published