Giter VIP home page Giter VIP logo

pg-mutex-lock's Introduction

PG Mutex Lock

Description

This is mutex lock implementation using postgres advisory lock feature.

Feature

  • Support multi-process mutex lock
  • Support single-process mutex lock
  • Support retry, timeout configuration
  • Full typescript support

API

class PGMutexLock

This class is entry point of features. All functions are located under this class instance.

Options

Name Type Required Default Description
database.host string no undefined postgres database hostname
database.port number no undefined postgres database port
database.database string no undefined postgres database database name
database.user string no undefined postgres database user
database.password string no undefined postgres database password
timeout number no 10 * 1000 acquire lock timeout
retryCount number no 3 acquire lock retry count

Method acquireLock (key: string) : Promise

Try to acquire lock for given key. If success, will be resolved with true. If failed, will be rejected.


Method releaseLock (key: string) : Promise

Try to release lock for given key. It directly return results of pg_advisory_unlock.

Dependencies

pg-mutex-lock's People

Contributors

colonist4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pg-mutex-lock's Issues

Support connection string

Currently, the library requires the database parameters to be a parsed object. In modern days with 12 factor apps, it is customary to simply pass DATABASE_URL around as a single string. It'd be great if this was natively supported, similarly to how pg itself supports connection strings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.