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_ssland--redis-unix-socket-pathcommand 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|