Skip to main content

Tool to use Redis RedLock algorithm from command line/shell scripts

Project description

Build Status Coverage Status PyPI version

fredlock

fredlock - Redis RedLock based distributed locking tool

fredlock distributed locking utility

fredlock is a distributed locking tool based on Redis RedLock algorithm intended as a replacement for "flock" command line utility, it allows to run commands on multiple machines with a guarantee that no two instances will be running at the same time.

fredlock requires a shared Redis instance to provide locking

Release Notes

  • 0.1.3 - No Changes (testing auto-release)

  • 0.1.2 - No Changes (testing auto-release)

  • 0.1.1 - Bugfixes

    • Removed --redis_ssl and --redis-unix-socket-path command line options for now, not compatible with older redis clients
    • Fixed sleep after acquire/before release
  • 0.1.0 - Initial version

    • Features
      • Auto-release of a lock after x seconds if command does not complete in allotted time. (--auto-release-time x)
      • Specify how long to wait for lock
        • Indefinitely (--wait-timeout -1)
        • Limited Time (--wait-timeout x (x > 0))
        • Do not wait (--wait-timeout 0)
      • Custom Optional Delays:
        • After lock acquire, before command execution (--delay-after-acquire x)
        • After command execution, before lock release ( --delay-before-release x)

TODOs:

Some other ideas/desired features:

  • Quiet timeouts (no output/failure if not run due to timeout trying to get lock)
  • Config file (currently we support cli and env variables)
  • Redis Cluster support
  • Lock Namespacing

Installation

From PyPi:

pip install fredlock

Usage

Full build-in usage is available with --help flag.

Run command with automatically-generated name lock

Simplest usage to run a command command arg1 arg2 with lock command:

fredlock run command arg1 arg2

Run command with a specified name lock

Simplest usage to run a command command arg1 arg2 with lock lockname:

fredlock --name lockname run command arg1 arg2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fredlock-0.1.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

fredlock-0.1.3-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file fredlock-0.1.3.tar.gz.

File metadata

  • Download URL: fredlock-0.1.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for fredlock-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a105f2bb8e53cea7bf7f80436d27c6256e038947eef36a526c3306645f0f1511
MD5 2e751c57e629adfcb853ff6d97a0a232
BLAKE2b-256 a448c5ba076343fefc9b248791fcca5ef0e9e52e2bb4227e3ba6d533370358d9

See more details on using hashes here.

File details

Details for the file fredlock-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: fredlock-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for fredlock-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7be14c3534c0db1e4e55e60dd9c07026e58e72a75345ddafaba16fe6540de2e6
MD5 c1fecd5ebc2daebeb5d565170cb4d9d1
BLAKE2b-256 469a4c6a721a0558ddfc93486d297d837a61f2da533e1a637d90bdb6e21279cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page