{ "info": { "author": "Ionel Cristian M\u0103rie\u0219", "author_email": "contact@ionelmc.ro", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "========\nOverview\n========\n\n\n\nA really simple job queue. Uses a rudimentary event loop and runs tasks in subprocesses (managed with signalfd).\nDoesn't support task arguments. Task results are rudimentary (only succcess or failure with exit code). When multiple\nrequests are made for the same task they are collapsed into a single request.\n\n* Free software: BSD 2-Clause License\n\nInstallation\n============\n\n::\n\n pip install stampede\n\nDocumentation\n=============\n\n\nTo use the project:\n\n.. code-block:: python\n\n import stampede\n\n\n class MyWorker(StampedeWorker):\n\n def handle_task(self, name):\n print(\"Perfoming work for task:\", name)\n\n\nDevelopment\n===========\n\nTo run the all tests run::\n\n tox\n\n\nChangelog\n=========\n\n2.0.0 (2018-12-17)\n------------------\n\n* Use more robust collection of child exit codes. Turns out that if there's enough pressure of the signalfd is fills up and\n needs extra ``os.waitpid()`` calls to collect the orphans.\n* Add a request API (``stampede.request``).\n* Add a request API that also spawns the daemon if not running (``stampede.request_and_spawn``).\n* Changed ``do_work`` to ``handle_task`` in StampedeWorker. **BACKWARDS INCOMPATIBLE**\n* Update test grid to include Python 3.7 and PyPy3.\n* Changed how results are passed to the client (JSON instead of some crappy custom text format).\n\n1.0.0 (2015-10-19)\n------------------\n\n* Switch to `signalfd `_\n (from the unmaintained `python-signalfd `_).\n* Switch to pytest.\n\n0.0.1 (2013-10-30)\n------------------\n\n* ?\n\n0.0.1 (2013-10-28)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ionelmc/python-stampede", "keywords": "", "license": "BSD 2-Clause License", "maintainer": "", "maintainer_email": "", "name": "stampede", "package_url": "https://pypi.org/project/stampede/", "platform": "", "project_url": "https://pypi.org/project/stampede/", "project_urls": { "Homepage": "https://github.com/ionelmc/python-stampede" }, "release_url": "https://pypi.org/project/stampede/2.0.0/", "requires_dist": [ "signalfd", "subprocess32" ], "requires_python": "", "summary": "A really simple job queue. Uses a rudimentary event loop and runs tasks in subprocesses (managed with signalfd). Doesn't support task arguments. Task results are rudimentary (only succcess or failure with exit code). When multiple requests are made for the same task they are collapsed into a single request.", "version": "2.0.0" }, "last_serial": 4607237, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "534419b8ea800ee401c198d2682c8286", "sha256": "e0967ce9d6b4508bde54f043a93b3063bc36adb62e2a172851c28d7b2a249940" }, "downloads": -1, "filename": "stampede-0.0.1.tar.gz", "has_sig": false, "md5_digest": "534419b8ea800ee401c198d2682c8286", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7052, "upload_time": "2013-10-28T22:09:12", "url": "https://files.pythonhosted.org/packages/bb/6d/288174cb435c43354ee46e01001b5649189ef2e4e11ed617c11a019573c4/stampede-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "348a89ff42e8f8ace17d993152a8369b", "sha256": "68b8f632d7334fb7a44e4f1cc65144c91ce2f6edfbb571efe27617084148d669" }, "downloads": -1, "filename": "stampede-0.0.2.tar.gz", "has_sig": false, "md5_digest": "348a89ff42e8f8ace17d993152a8369b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7455, "upload_time": "2013-10-30T18:03:05", "url": "https://files.pythonhosted.org/packages/08/00/b847c259b374b9e560e6976bb3b9711a9f97f91dcc5b8a85b453a780a39c/stampede-0.0.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "8a6825eb51c1ab55e3bb9f3acbaac0fb", "sha256": "c55db4609cafa2bdf69351056e43523d886726eb2d3609f5bf9a930d7210abb2" }, "downloads": -1, "filename": "stampede-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a6825eb51c1ab55e3bb9f3acbaac0fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6686, "upload_time": "2015-10-19T21:42:08", "url": "https://files.pythonhosted.org/packages/58/20/8fd529bbb1d5a1b0bf8e146473d07d63d422653f16fa4e2118986fa50a63/stampede-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c577a8dfec8b6f8e3c60b64ea34d13df", "sha256": "a1cab43740a435b3aca60e7d2d0532fceebee33e6370c2323ce63c8829bdd098" }, "downloads": -1, "filename": "stampede-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c577a8dfec8b6f8e3c60b64ea34d13df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11902, "upload_time": "2015-10-19T21:42:21", "url": "https://files.pythonhosted.org/packages/c6/f4/95717e621dc98ab245cac4186b94e9ce59a7628075618e07b21258319f58/stampede-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "b9450b45c5a30a49eca21620a27c3ea5", "sha256": "c19f5c0da6f8c1e29bfe2b2d8966a2709d1a836e19e65b25ecd1c782afbecb39" }, "downloads": -1, "filename": "stampede-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9450b45c5a30a49eca21620a27c3ea5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8507, "upload_time": "2018-12-17T09:36:52", "url": "https://files.pythonhosted.org/packages/51/03/9d08bb3cb8ec9d4e58010ee76710ec8fdd8bf782ebf2e37036bfdc242ae1/stampede-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e0dc5e4c74603278eda3a079d604161", "sha256": "26f5382e09e4ae5b058e6b913374922c67fafa8f3304244c9be712bada8f9215" }, "downloads": -1, "filename": "stampede-2.0.0.tar.gz", "has_sig": false, "md5_digest": "0e0dc5e4c74603278eda3a079d604161", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16881, "upload_time": "2018-12-17T09:36:53", "url": "https://files.pythonhosted.org/packages/d4/22/841b3a947c87323f48f636dfe709f9996bc86ba2c9a17dff18d7539bfb88/stampede-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b9450b45c5a30a49eca21620a27c3ea5", "sha256": "c19f5c0da6f8c1e29bfe2b2d8966a2709d1a836e19e65b25ecd1c782afbecb39" }, "downloads": -1, "filename": "stampede-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9450b45c5a30a49eca21620a27c3ea5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8507, "upload_time": "2018-12-17T09:36:52", "url": "https://files.pythonhosted.org/packages/51/03/9d08bb3cb8ec9d4e58010ee76710ec8fdd8bf782ebf2e37036bfdc242ae1/stampede-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e0dc5e4c74603278eda3a079d604161", "sha256": "26f5382e09e4ae5b058e6b913374922c67fafa8f3304244c9be712bada8f9215" }, "downloads": -1, "filename": "stampede-2.0.0.tar.gz", "has_sig": false, "md5_digest": "0e0dc5e4c74603278eda3a079d604161", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16881, "upload_time": "2018-12-17T09:36:53", "url": "https://files.pythonhosted.org/packages/d4/22/841b3a947c87323f48f636dfe709f9996bc86ba2c9a17dff18d7539bfb88/stampede-2.0.0.tar.gz" } ] }