Skip to main content

Distributed Inter-Process Communication Library implemented in Python and Memcache server

Project description

dipc

Distributed Inter-Process Communication Library implemented in Python and Memcached. server

Using dipc

dipc library has two classes for distributed lock and semaphore, MemcacheLock and MemcacheSemaphore

Both of those clases has a first argument which is a list of memcached servers, name of lock/semaphore, ttl - timeout (in seconds). MemcacheSemaphore class has additional parameter value - which is number of processes that can access critical section.

acquire() method will wait forever until lock will be granted. You can specify argument blocking=False, and then will this methid will return True/False depending on if lock was granted or not.

>>> from dipc import MemcacheLock
... ml = MemcacheLock(["localhost:11211"], "lock", ttl=60)
... ml.acquire()
... # critical section
... ml.release()
>>> from dipc import MemcacheSemaphore
... ml = MemcacheSemaphore(["localhost:11211"], "semaphore", value=10, ttl=60)
... ml.acquire()
... # critical section
... ml.release()

There are also decorators available: distributed_lock and distributed_semaphore First argument is a list of hosts, but it also can be a function that returns list of hosts (for those environments that have config file read in a lazy manner)

>>> from dipc.decorators import distributed_lock
...
... @distributed_lock(["localhost:11211"], "lock", ttl=60)
... def foo():
...     # body
>>> from dipc.decorators import distributed_semaphore
...
... @distributed_semaphore(["localhost:11211"], "semaphore", value=10, ttl=60)
... def bar():
...     # body

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

dipc-0.4.tar.gz (3.6 kB view details)

Uploaded Source

File details

Details for the file dipc-0.4.tar.gz.

File metadata

  • Download URL: dipc-0.4.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dipc-0.4.tar.gz
Algorithm Hash digest
SHA256 0c19a7f3ad99bc33ab1f3496496dadf0859bf32d067b8085311122b8a5702c93
MD5 653f95cca5d8219e127a9afa86d539ed
BLAKE2b-256 cb880cc5777d999dd488cec78fce65bc4bfc768bea92b9d6e6cefd687d152213

See more details on using hashes here.

Supported by

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