{ "info": { "author": "Paul Bailey", "author_email": "quickq@neutrondrive.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Programming Language :: Python :: 3 :: Only" ], "description": "# Django Quick Queue\n\nDjango Quick Queue is a fast and simple way to use async tasks in Django. This package has a limited use case. If you are looking for a more complex async task systems you should try Django Q, Celery, or Huey. Quick Queue is meant to give you the simplest method to get started executing small asynchronous tasks.\n\n# Installation\n\n### 1. Install Package\n\n`pip install quickq`\n\n### 2. Add Base URL to settings.py\n\n```python\nQQ_BASE_URL = 'https://mysite.example.com'\n```\n\n### 3. Setup the view in your urls.py\n\n```python\nfrom quickq import taskinator\n\nurlpatterns = [\n url(r'^taskinator/(\\S+)$', taskinator, name=\"taskinator\"),\n ...\n]\n```\n\n### 4. Add the Task decorator to any function\n\n```python\nfrom quickq import Task\n\n@Task()\ndef send_approved (name, slug, email):\n send_mail(\n 'Yay E-mail!',\n message,\n settings.DEFAULT_FROM_EMAIL,\n [email],\n fail_silently=False,\n )\n\n# With a custom Timeout\n@Task(timeout=120)\ndef another_task ():\n do_stuff()\n```\n\n### 5. Execute your task as normal\n\n```python\nsend_email('Narf', 'narf-me', 'narf@aol.com')\n```\n\n## How it Works\n\n1. Your task is called\n 1. A PyJWT is generated.\n 2. The taskinator URL is called asynchronously.\n2. Taskinator view executed\n 1. Decodes the JWT.\n 2. Excutes the original task function outside of the original request.\n\n## Limitations\n\n- Function arguments are converted to JSON so they must be JSON compatible.\n- Request time may be limited. If your webserver has a limitation on request time then that will also affect how long your tasks can execute since they are simply web requests. The request is also limited by the `QQ_REQUEST_TIMEOUT` setting.\n\n## Additional Settings\n\n```\nQQ_TOKEN_EXPIRATION: Default 60\nQQ_TOKEN_ALGORITHMS: Default ['HS256']\nQQ_URL_NAME: Default 'taskinator'\nQQ_REQUEST_TIMEOUT: Default 60\n```\n\n## Scaling\n\nWhile Quick Queue is limited it still could scaled in with a few tricks.\n\n- Run a separate web server just for Queue tasks. This would allow you scale your task queue differently and change your request timeout values.\n- additional?\n\n## Future Goals\n\n- add task retries\n- multiple queue URLs\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pizzapanther/pizzapanther.github.io/tree/master/libs/quickq", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "quickq", "package_url": "https://pypi.org/project/quickq/", "platform": "", "project_url": "https://pypi.org/project/quickq/", "project_urls": { "Homepage": "https://github.com/pizzapanther/pizzapanther.github.io/tree/master/libs/quickq" }, "release_url": "https://pypi.org/project/quickq/17.10.4/", "requires_dist": [ "Django (>=1.11)", "pyjwt", "requests", "twine; extra == 'dev'", "wheel; extra == 'dev'" ], "requires_python": "", "summary": "The quickest way to setup async tasks with Django.", "version": "17.10.4" }, "last_serial": 3275693, "releases": { "17.10.1": [ { "comment_text": "", "digests": { "md5": "73622913aca0c313d6287d6bc01f86b2", "sha256": "5abdf0bcb9b578dd7713895ab99f0d205bcf9d44c93a2921b2cf13b57f7b270a" }, "downloads": -1, "filename": "quickq-17.10.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73622913aca0c313d6287d6bc01f86b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5116, "upload_time": "2017-10-24T15:29:10", "url": "https://files.pythonhosted.org/packages/ea/67/5be061d6b98bd9c0b3a246a55aebb4a4e3e1d6c599a8ffcd7ff0115223d0/quickq-17.10.1-py2.py3-none-any.whl" } ], "17.10.3": [ { "comment_text": "", "digests": { "md5": "e82f7cc4173f190ee40e0ff7b2c80f06", "sha256": "299d23d84759dc39f29437ccdcaad53092b8ec9957a68b74cf7074c5c856308b" }, "downloads": -1, "filename": "quickq-17.10.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e82f7cc4173f190ee40e0ff7b2c80f06", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5086, "upload_time": "2017-10-24T16:47:58", "url": "https://files.pythonhosted.org/packages/74/9b/d86747343ce517378b32e2a0023738a8f09be6d951ad444e960530f63f3a/quickq-17.10.3-py2.py3-none-any.whl" } ], "17.10.4": [ { "comment_text": "", "digests": { "md5": "852a4f56097194220c3204232f344e3c", "sha256": "ce7926c1756d9bd96b9f3a21eca87c79b80f4f2f8498de72c6ec4759f36a3d72" }, "downloads": -1, "filename": "quickq-17.10.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "852a4f56097194220c3204232f344e3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5090, "upload_time": "2017-10-24T16:55:54", "url": "https://files.pythonhosted.org/packages/80/34/7106a9aa546e891577197632aa4e16a1a2ee83a78be89a5b1c2bc6ab2fa8/quickq-17.10.4-py2.py3-none-any.whl" } ], "17.8.1": [ { "comment_text": "", "digests": { "md5": "37661896d12c55f202b1b1acf3e4184e", "sha256": "ff32f90c38e9887d0ac82cc56d76a599974bea41e9b27dc7d4359cd0158ab892" }, "downloads": -1, "filename": "quickq-17.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "37661896d12c55f202b1b1acf3e4184e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2871, "upload_time": "2017-07-29T16:19:05", "url": "https://files.pythonhosted.org/packages/2b/40/45f4f3c8c3250f50f7f14312515440122836e007b99c3a0da8d342c01aca/quickq-17.8.1-py2.py3-none-any.whl" } ], "17.8.2": [ { "comment_text": "", "digests": { "md5": "c780c1f4886f1a5540b74e7e1950cbfd", "sha256": "a97f6ddf02314bdea3e141b01933a98a135f057ad1c7b7ad26819257c3fbadee" }, "downloads": -1, "filename": "quickq-17.8.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c780c1f4886f1a5540b74e7e1950cbfd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4482, "upload_time": "2017-07-29T16:46:34", "url": "https://files.pythonhosted.org/packages/a5/fb/d74e24b7ff33a29806d11f23baa4d2fbef473d614bb4fb96dadb0ad5d15a/quickq-17.8.2-py2.py3-none-any.whl" } ], "17.8.3": [ { "comment_text": "", "digests": { "md5": "228424a8c2b143fd42f8e4fb284cef63", "sha256": "54055332623c2d33f0417ebfa1e3ae307a450fecf3fb91259d168bfcce277486" }, "downloads": -1, "filename": "quickq-17.8.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "228424a8c2b143fd42f8e4fb284cef63", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4480, "upload_time": "2017-07-29T16:48:57", "url": "https://files.pythonhosted.org/packages/95/08/b9b3f29e93a9cce97f4f2870788303b3b5ee9f75399e22d894092f59a152/quickq-17.8.3-py2.py3-none-any.whl" } ], "17.8.4": [ { "comment_text": "", "digests": { "md5": "763805c225e01ed9dd310d1841a00fee", "sha256": "d2f5579d067ce12397530c7e6d991b0257d743b7234174e3f585f108fa239ae4" }, "downloads": -1, "filename": "quickq-17.8.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "763805c225e01ed9dd310d1841a00fee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4654, "upload_time": "2017-07-29T16:52:54", "url": "https://files.pythonhosted.org/packages/72/ec/63fa6f1c3f9bd4cb5e0de80bcf111256ab3f402c665e888b99997ce10583/quickq-17.8.4-py2.py3-none-any.whl" } ], "17.8.5": [ { "comment_text": "", "digests": { "md5": "a5687bb8c5227aa93d7abf2d2336a800", "sha256": "41161ea0967be2893b23375078116ce57f955d6d76be81dce73e9943e07a8a1e" }, "downloads": -1, "filename": "quickq-17.8.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5687bb8c5227aa93d7abf2d2336a800", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4863, "upload_time": "2017-07-29T17:00:49", "url": "https://files.pythonhosted.org/packages/cb/00/b1bafd636e1a8dd5e095fc39294e8e1f0ea4713e8ee4fa0696468b73e0a8/quickq-17.8.5-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "852a4f56097194220c3204232f344e3c", "sha256": "ce7926c1756d9bd96b9f3a21eca87c79b80f4f2f8498de72c6ec4759f36a3d72" }, "downloads": -1, "filename": "quickq-17.10.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "852a4f56097194220c3204232f344e3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5090, "upload_time": "2017-10-24T16:55:54", "url": "https://files.pythonhosted.org/packages/80/34/7106a9aa546e891577197632aa4e16a1a2ee83a78be89a5b1c2bc6ab2fa8/quickq-17.10.4-py2.py3-none-any.whl" } ] }