Skip to main content

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. If blocking is False, returns immediately if lock is held.
  • Returns True (lock acquired) or False (non-blocking, lock not acquired).

release(resource)

  • Releases the lock on resource.

License

MIT

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

lockserver_client-0.1.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lockserver_client-0.1.1-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

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

Hashes for lockserver_client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 db43a34013051655aa5a42fb987f91b366c7512bab92cf496cab05c64ecb6767
MD5 9ccf621d561de54d48d9cf5424da3f90
BLAKE2b-256 ce90f9b5143fb3fbe7d3227f05d27fc1d69d6479a5ba4357542a91431216956b

See more details on using hashes here.

File details

Details for the file lockserver_client-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lockserver_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0f1106433d7aa93a123a34b01872e6a317374fbf8fae18f22ee082fda45677f6
MD5 8609973cb463f904fb4416e2abf627cb
BLAKE2b-256 3ef27b291848704f66ade7b4f177578b1da8940b9a56ad211a4b5c00e164026a

See more details on using hashes here.

Supported by

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