Tool to use Redis RedLock algorithm from command line/shell scripts
Project description
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
- Removed
-
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
)
- Indefinitely (
- Custom Optional Delays:
- After lock acquire, before command execution (
--delay-after-acquire x
) - After command execution, before lock release (
--delay-before-release x
)
- After lock acquire, before command execution (
- Auto-release of a lock after x seconds if command does not
complete in allotted time. (
- Features
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a105f2bb8e53cea7bf7f80436d27c6256e038947eef36a526c3306645f0f1511 |
|
MD5 | 2e751c57e629adfcb853ff6d97a0a232 |
|
BLAKE2b-256 | a448c5ba076343fefc9b248791fcca5ef0e9e52e2bb4227e3ba6d533370358d9 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7be14c3534c0db1e4e55e60dd9c07026e58e72a75345ddafaba16fe6540de2e6 |
|
MD5 | c1fecd5ebc2daebeb5d565170cb4d9d1 |
|
BLAKE2b-256 | 469a4c6a721a0558ddfc93486d297d837a61f2da533e1a637d90bdb6e21279cd |