{ "info": { "author": "Lewis Franklin", "author_email": "lewis.franklin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Distributed Computing" ], "description": "Celey Mutex\n===========\n\nCelery Mutex is a mutex for Celery Tasks, optionally refined based on provided\nkeys. This mutex prevents execution of concurrent tasks, as opposed to delaying\nexecution.\n\n\nInstallation\n------------\n\nSimply run `pip install celery_mutex`\n\n\nRequirements\n------------\n\nCelery Mutex relies on [ZooKeeper](http://zookeeper.apache.org/).\n\n\nUsage\n-----\n\nCelery Mutex takes advantage of Abstract Tasks for Celery. To utilize this\nabstract task, add it as a base for the task:\n\n import celery_mutex\n\n @app.task(base=celery_mutex.MutexTask)\n def my_task(a, b):\n return a + b\n\nA new configuration variable is required in order to let Celery Mutex know\nabout your ZooKeeper servers:\n\n ZOOKEEPER_HOSTS = 'localhost:2181'\n\nThis is a comma-separated list of hosts to connect to.\n\nBy default a mutex times out after one hour. This can be changed globally by\nsetting `MUTEX_TIMEOUT` or per-task by setting `mutex_timeout` on the task. For\nboth the value is an integer for the number of seconds to set the time out.\n\nA second configuration option allows you to refine the mutex for a given task.\nBy default, Celery Mutex only allows one instance of a task at a time. However,\nthere may be a need to further refine what is controlled by the mutex. This can\nbe done by setting `mutex_keys` on the task. The value is a list of keys that\nare to be used for determining exclusivity.\n\nUsing our above example, adding the two optional parameters would yield:\n\n import celery_mutex\n\n @app.task(base=celery_mutex.MutexTask, mutex_timeout=30, mutex_keys=('a',))\n def my_task(a, b):\n return a + b\n\nThis would cause the mutex to only prevent execution for tasks that share the\nsame value for \"a\".", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brolewis/celery_mutex", "keywords": "Celery tasks mutex", "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "celery_mutex", "package_url": "https://pypi.org/project/celery_mutex/", "platform": "any", "project_url": "https://pypi.org/project/celery_mutex/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/brolewis/celery_mutex" }, "release_url": "https://pypi.org/project/celery_mutex/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Mutex for Celery tasks, which can be refined.", "version": "0.1.0" }, "last_serial": 1043016, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7994f1894b10798ccec62930f1772363", "sha256": "cc08458dee7739565d749b578a1a2efe4f0fb4b091750e673535f5e2b9c6ab75" }, "downloads": -1, "filename": "celery_mutex-0.1.0-py27-none-any.whl", "has_sig": false, "md5_digest": "7994f1894b10798ccec62930f1772363", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 5484, "upload_time": "2014-03-27T07:32:30", "url": "https://files.pythonhosted.org/packages/8f/2e/3cdab0b1d3b9fbde50e71efdfc095977df1f40884db1de9810d65b454061/celery_mutex-0.1.0-py27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d315c347b1b3c9a8a41f9c5133bde1b", "sha256": "8013ba3ec9aa5288818f43ab949d93936921a8724d82db74c57100c354b3eb6d" }, "downloads": -1, "filename": "celery_mutex-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7d315c347b1b3c9a8a41f9c5133bde1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3468, "upload_time": "2014-03-27T07:32:45", "url": "https://files.pythonhosted.org/packages/89/32/af1369d9ebfb9857286e943963a6cd8b836a531bfd6092e179867176eba6/celery_mutex-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7994f1894b10798ccec62930f1772363", "sha256": "cc08458dee7739565d749b578a1a2efe4f0fb4b091750e673535f5e2b9c6ab75" }, "downloads": -1, "filename": "celery_mutex-0.1.0-py27-none-any.whl", "has_sig": false, "md5_digest": "7994f1894b10798ccec62930f1772363", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 5484, "upload_time": "2014-03-27T07:32:30", "url": "https://files.pythonhosted.org/packages/8f/2e/3cdab0b1d3b9fbde50e71efdfc095977df1f40884db1de9810d65b454061/celery_mutex-0.1.0-py27-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d315c347b1b3c9a8a41f9c5133bde1b", "sha256": "8013ba3ec9aa5288818f43ab949d93936921a8724d82db74c57100c354b3eb6d" }, "downloads": -1, "filename": "celery_mutex-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7d315c347b1b3c9a8a41f9c5133bde1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3468, "upload_time": "2014-03-27T07:32:45", "url": "https://files.pythonhosted.org/packages/89/32/af1369d9ebfb9857286e943963a6cd8b836a531bfd6092e179867176eba6/celery_mutex-0.1.0.tar.gz" } ] }