Python client SDK for lockserver (distributed lock server)
Project description
lockserver-client (Python)
A Python client SDK for lockserver, a distributed lock server for coordinating access to shared resources.
Install
pip install requests
Usage
from lockserver_client import LockserverClient
client = LockserverClient(
addr='127.0.0.1:8080', # or from env LOCKSERVER_ADDR
owner='worker1', # or from env LOCKSERVER_OWNER
secret='your-strong-secret' # or from env LOCKSERVER_SECRET
)
# Blocking acquire
client.acquire('my-resource')
# ... critical section ...
client.release('my-resource')
# Non-blocking acquire
if client.acquire('my-resource', blocking=False):
# ... critical section ...
client.release('my-resource')
Example: Multiple workers writing to S3
from lockserver_client import LockserverClient
def upload_to_s3(bucket, file):
print(f"Uploading {file} to {bucket}...")
client = LockserverClient(owner='worker-123', secret='your-strong-secret')
if client.acquire('s3-upload-lock'):
try:
upload_to_s3('my-bucket', 'file.txt')
finally:
client.release('s3-upload-lock')
API
LockserverClient(addr=None, owner=None, secret=None)
addr: lockserver address (default:127.0.0.1:8080)owner: unique owner id (default:default_owner)secret: shared secret (default:changeme)
acquire(resource, blocking=True)
- Acquires a lock on
resource. Ifblockingis False, returns immediately if lock is held. - Returns
True(lock acquired) orFalse(non-blocking, lock not acquired).
release(resource)
- Releases the lock on
resource.
License
MIT
Project details
Release history Release notifications | RSS feed
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 lockserver_client-0.1.1.tar.gz.
File metadata
- Download URL: lockserver_client-0.1.1.tar.gz
- Upload date:
- Size: 2.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db43a34013051655aa5a42fb987f91b366c7512bab92cf496cab05c64ecb6767
|
|
| MD5 |
9ccf621d561de54d48d9cf5424da3f90
|
|
| BLAKE2b-256 |
ce90f9b5143fb3fbe7d3227f05d27fc1d69d6479a5ba4357542a91431216956b
|
File details
Details for the file lockserver_client-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lockserver_client-0.1.1-py3-none-any.whl
- Upload date:
- Size: 2.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f1106433d7aa93a123a34b01872e6a317374fbf8fae18f22ee082fda45677f6
|
|
| MD5 |
8609973cb463f904fb4416e2abf627cb
|
|
| BLAKE2b-256 |
3ef27b291848704f66ade7b4f177578b1da8940b9a56ad211a4b5c00e164026a
|