Mutex for Celery tasks, which can be refined.
Project description
Celey Mutex
===========
Celery Mutex is a mutex for Celery Tasks, optionally refined based on provided
keys. This mutex prevents execution of concurrent tasks, as opposed to delaying
execution.
Installation
------------
Simply run `pip install celery_mutex`
Requirements
------------
Celery Mutex relies on [ZooKeeper](http://zookeeper.apache.org/).
Usage
-----
Celery Mutex takes advantage of Abstract Tasks for Celery. To utilize this
abstract task, add it as a base for the task:
import celery_mutex
@app.task(base=celery_mutex.MutexTask)
def my_task(a, b):
return a + b
A new configuration variable is required in order to let Celery Mutex know
about your ZooKeeper servers:
ZOOKEEPER_HOSTS = 'localhost:2181'
This is a comma-separated list of hosts to connect to.
By default a mutex times out after one hour. This can be changed globally by
setting `MUTEX_TIMEOUT` or per-task by setting `mutex_timeout` on the task. For
both the value is an integer for the number of seconds to set the time out.
A second configuration option allows you to refine the mutex for a given task.
By default, Celery Mutex only allows one instance of a task at a time. However,
there may be a need to further refine what is controlled by the mutex. This can
be done by setting `mutex_keys` on the task. The value is a list of keys that
are to be used for determining exclusivity.
Using our above example, adding the two optional parameters would yield:
import celery_mutex
@app.task(base=celery_mutex.MutexTask, mutex_timeout=30, mutex_keys=('a',))
def my_task(a, b):
return a + b
This would cause the mutex to only prevent execution for tasks that share the
same value for "a".
===========
Celery Mutex is a mutex for Celery Tasks, optionally refined based on provided
keys. This mutex prevents execution of concurrent tasks, as opposed to delaying
execution.
Installation
------------
Simply run `pip install celery_mutex`
Requirements
------------
Celery Mutex relies on [ZooKeeper](http://zookeeper.apache.org/).
Usage
-----
Celery Mutex takes advantage of Abstract Tasks for Celery. To utilize this
abstract task, add it as a base for the task:
import celery_mutex
@app.task(base=celery_mutex.MutexTask)
def my_task(a, b):
return a + b
A new configuration variable is required in order to let Celery Mutex know
about your ZooKeeper servers:
ZOOKEEPER_HOSTS = 'localhost:2181'
This is a comma-separated list of hosts to connect to.
By default a mutex times out after one hour. This can be changed globally by
setting `MUTEX_TIMEOUT` or per-task by setting `mutex_timeout` on the task. For
both the value is an integer for the number of seconds to set the time out.
A second configuration option allows you to refine the mutex for a given task.
By default, Celery Mutex only allows one instance of a task at a time. However,
there may be a need to further refine what is controlled by the mutex. This can
be done by setting `mutex_keys` on the task. The value is a list of keys that
are to be used for determining exclusivity.
Using our above example, adding the two optional parameters would yield:
import celery_mutex
@app.task(base=celery_mutex.MutexTask, mutex_timeout=30, mutex_keys=('a',))
def my_task(a, b):
return a + b
This would cause the mutex to only prevent execution for tasks that share the
same value for "a".
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
celery_mutex-0.1.0.tar.gz
(3.5 kB
view details)
Built Distribution
File details
Details for the file celery_mutex-0.1.0.tar.gz
.
File metadata
- Download URL: celery_mutex-0.1.0.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8013ba3ec9aa5288818f43ab949d93936921a8724d82db74c57100c354b3eb6d |
|
MD5 | 7d315c347b1b3c9a8a41f9c5133bde1b |
|
BLAKE2b-256 | 8932af1369d9ebfb9857286e943963a6cd8b836a531bfd6092e179867176eba6 |
File details
Details for the file celery_mutex-0.1.0-py27-none-any.whl
.
File metadata
- Download URL: celery_mutex-0.1.0-py27-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 2.7
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc08458dee7739565d749b578a1a2efe4f0fb4b091750e673535f5e2b9c6ab75 |
|
MD5 | 7994f1894b10798ccec62930f1772363 |
|
BLAKE2b-256 | 8f2e3cdab0b1d3b9fbde50e71efdfc095977df1f40884db1de9810d65b454061 |