Socket
Book a DemoInstallSign in
Socket

redis-reservation

Package Overview
Dependencies
Maintainers
2
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redis-reservation

Resource reservation (locking) libraries using a Redis backend, with customizable timeouts and keep-alive support.

0.4.0
latest
Source
npmnpm
Version published
Weekly downloads
3
-75%
Maintainers
2
Weekly downloads
 
Created
Source

node-redis-reservation

redis reservations are like locks/mutexes except they can expire.

constructor(by, host, port, heartbeat_interval, lock_ttl, log, password)

Creates a new redis-reservation which includes setting up redis connection credentials.

Arguments
  • by - The worker name
  • host - Redis host to connect to
  • port - Redis port to connect to
  • heartbeat_interval - Renew the lock at every heartbeat_interval milliseconds
  • lock_ttl - Renew the lock for lock_ttl seconds
  • log - Log to use or else defaults to console.log
  • password - Password to authenticate with redis server
Example
ReserveResource = require 'redis-reservation'

reservation = new ReserveResource
  'worker-name',
  process.env.REDIS_HOST,
  process.env.REDIS_PORT,
  10 * 60 * 1000,           # 10 minutes
  30 * 60                   # 30 minutes
  # log,                     # defaults to console.log
  # password                # defaults to no password (empty string)

lock(resource, callback)

Attempts to lock the resource if it can.

Arguments
  • resource - The key to use to uniquely identify this lock
  • callback(err, lock_status) - lock_status is true if lock was acquired, false otherwise.
Example
reservation.lock job_name, (err, lock_status) ->
  return err if err?
  if lock_status
    do_job()
  else
    console.log 'Reservation already held'

wait_until_lock(resource, callback)

Waits until the lock can be acquired for the resource.

Arguments
  • resource - The key to use to uniquely identify this lock
  • callback(err, reserve_key) - callback is called only when the lock can be acquired. reserve_key is the name of the key in redis that was used to acquire the lock.
Example
reservation.wait_until_lock job_name, (err, reserve_key) ->
  return err if err?
  do_job()

release(callback)

Releases the lock.

Arguments
  • callback(err) - Callback to be called once the lock is released, or error.
Example
reservation.release (err) ->
  if err?
    console.log 'Could not release lock, maybe the reservation was already lost?'
  return err

Keywords

locking

FAQs

Package last updated on 13 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.