Skip to main content

Package to used for handling lock mechanism when running appplication with multiple replicas

Project description

python-distributed-lock module

This Python package provides a mechanism to acquire and release Redis and MYSQL locks with authentication. It is useful for ensuring that only one process can access a particular resource or execute a critical section of code at a time.

Features

  • Connects to Redis or MySQL with username and password for authentication.
  • Acquires a lock, executes a function, and then releases the lock.
  • Useful in distributed systems where resource locking is needed.

Installation

To install the module, use pip:

pip install python_distributed_locking

Please check your database connection before passing it to module

use with mysql lock


from python_distributed_locking import start_cron_with_expression

mysql_user = "root"
mysql_pass = "root"
mysql_host = "localhost"
mysql_database = "mysql"

connection = mysql.connector.connect(
    host=mysql_host,
    user=mysql_user,
    password=mysql_pass,
    database=mysql_database,
    pool_name="mypool",
    pool_size=3
)

cron_expression = "* */5 * * *"  # Runs every 5 minute
distributedlock.start_cron_with_expression(connection, my_custom_function, cron_expression,"mysql")


def my_custom_function():
    # add whatever action you want in your custom function
    pass

use with redis lock


from python_distributed_locking import start_cron_with_expression

redis_host = "localhost"
redis_port = 6379
redis_username = "default"
redis_password = "root"

# Connect to Redis with username and password
connection = redis.StrictRedis(
    host=redis_host,
    port=redis_port,
    username=redis_username,
    password=redis_password,
    decode_responses=True
)

cron_expression = "* */5 * * *"  # Runs every 5 minute
distributedlock.start_cron_with_expression(connection, my_custom_function, cron_expression,"redis")


def my_custom_function():
    # add whatever action you want in your custom function
    pass

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

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

Source Distribution

python_distributed_locking-1.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

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

python_distributed_locking-1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file python_distributed_locking-1.0.tar.gz.

File metadata

File hashes

Hashes for python_distributed_locking-1.0.tar.gz
Algorithm Hash digest
SHA256 64bfc34b7ba4172d5791312f60483e388782a951ec74721b92c2663915e52cc6
MD5 d513a39df0f7b28e2f8dcb7e8ce9399a
BLAKE2b-256 7100b609252e2fe86d5ad103be67bddedf058037302f112bc6fff1329b5face2

See more details on using hashes here.

File details

Details for the file python_distributed_locking-1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_distributed_locking-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f6b0d827a04d4a7c5942ebd74f58722785108368e628d26dab757a74797b9b9
MD5 442853e2ecfe5dde09e71e2b04848e91
BLAKE2b-256 1562643c018aa058b2f13b78ae23c105342bc8c0e0d7b78b644ba530e7e6b964

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