django-distributedlock
======================
A django app for functions or tasks that needs distributed lock, e.g. for management commands that used in cron jobs
Instalation
============
Install with ``pip`` in your environment::
$ pip install django-distributedlock
Add in your ``settings.py`` in ``INSTALLED_APPS`` ::
INSTALLED_APPS = (
...
'distributedlock',
...
)
django-distributedlock can be work with django cache or a database model, you must to set the client in the variable ``DISTRIBUTEDLOCK_CLIENT``, with the values ``cache`` or ``database`` according your needs.::
DISTRIBUTEDLOCK_CLIENT="cache" # or "database"
Use
===
For register a distrbuted function with decorator::
from distributedlock import distributedlock
@distributedlock()
def my_task():
print "running"
or you can use the sentence ``with``::
with distributedlock('my_key_task'):
print 'running'
Tests
=====
Once installed in your django project::
django-admin.py test distributedlock
Needs ``gevent`` installed only for tests purpose.
Some ideas were take from https://github.com/snbuback/DistributedLock
© 2013 Scryent
License BSD
Current code @ https://github.com/15five/django-distributedlock
Raw data
{
"_id": null,
"home_page": "https://github.com/15five/django-distributedlock",
"name": "django-distributedlock",
"maintainer": "Paul Logston",
"docs_url": null,
"requires_python": ">=3.4",
"maintainer_email": "Paul Logston <code@logston.me>",
"keywords": "distributed,lock",
"author": "Erik Rivera",
"author_email": "Erik Rivera <erik.river@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/73/2a/1b4719283227212fd30040d24a70c47e89c39f742bef1a61bc058c69eca2/django-distributedlock-0.5.0.tar.gz",
"platform": null,
"description": "django-distributedlock\r\n======================\r\n\r\nA django app for functions or tasks that needs distributed lock, e.g. for management commands that used in cron jobs\r\n\r\nInstalation\r\n============\r\n\r\nInstall with ``pip`` in your environment::\r\n\r\n $ pip install django-distributedlock\r\n\r\nAdd in your ``settings.py`` in ``INSTALLED_APPS`` ::\r\n \r\n INSTALLED_APPS = (\r\n ...\r\n 'distributedlock',\r\n ...\r\n )\r\n\r\ndjango-distributedlock can be work with django cache or a database model, you must to set the client in the variable ``DISTRIBUTEDLOCK_CLIENT``, with the values ``cache`` or ``database`` according your needs.::\r\n\r\n DISTRIBUTEDLOCK_CLIENT=\"cache\" # or \"database\"\r\n\r\n\r\nUse\r\n===\r\n\r\nFor register a distrbuted function with decorator::\r\n\r\n from distributedlock import distributedlock\r\n\r\n @distributedlock()\r\n def my_task():\r\n print \"running\"\r\n\r\nor you can use the sentence ``with``::\r\n\r\n with distributedlock('my_key_task'):\r\n print 'running'\r\n\r\nTests\r\n=====\r\n\r\nOnce installed in your django project::\r\n\r\n django-admin.py test distributedlock\r\n\r\nNeeds ``gevent`` installed only for tests purpose.\r\n\r\nSome ideas were take from https://github.com/snbuback/DistributedLock\r\n\r\n\u00a9 2013 Scryent\r\nLicense BSD\r\n\r\nCurrent code @ https://github.com/15five/django-distributedlock\r\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Distributed locking in Django",
"version": "0.5.0",
"project_urls": {
"Homepage": "https://github.com/15five/django-distributedlock"
},
"split_keywords": [
"distributed",
"lock"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9107a01ee5ee43116ed20e961a051476b8d3af2f2acf4e878678f3927c535e3a",
"md5": "bb70c9594ef4358804be08e197b5a5c5",
"sha256": "4a508cf04626ec202206195dbd43c4d937b7170ae1e1045339275da25d04f26d"
},
"downloads": -1,
"filename": "django_distributedlock-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb70c9594ef4358804be08e197b5a5c5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.4",
"size": 8266,
"upload_time": "2023-09-12T12:52:52",
"upload_time_iso_8601": "2023-09-12T12:52:52.143263Z",
"url": "https://files.pythonhosted.org/packages/91/07/a01ee5ee43116ed20e961a051476b8d3af2f2acf4e878678f3927c535e3a/django_distributedlock-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "732a1b4719283227212fd30040d24a70c47e89c39f742bef1a61bc058c69eca2",
"md5": "e5b0487e9b7c26c10669a25ccfb67aad",
"sha256": "19d1dbdb328711b0a4200b578db3f18ce4db02a5e02f62acfcbe278b16f8bb7c"
},
"downloads": -1,
"filename": "django-distributedlock-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "e5b0487e9b7c26c10669a25ccfb67aad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.4",
"size": 8419,
"upload_time": "2023-09-12T12:52:53",
"upload_time_iso_8601": "2023-09-12T12:52:53.430212Z",
"url": "https://files.pythonhosted.org/packages/73/2a/1b4719283227212fd30040d24a70c47e89c39f742bef1a61bc058c69eca2/django-distributedlock-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-12 12:52:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "15five",
"github_project": "django-distributedlock",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "django-distributedlock"
}