{ "info": { "author": "FuGangqiang", "author_email": "fu_gangqiang@qq.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5" ], "description": "# pyxqueue\n\na multi-processes task queue using redis streams.\n\nheavily inspired from: [http://charlesleifer.com/blog/multi-process-task-queue-using-redis-streams/](http://charlesleifer.com/blog/multi-process-task-queue-using-redis-streams/)\n\n## install\n\n```\npip install pyxqueue\n```\n\n## Usage\n\n### background task\n\n```\nimport time\n\nimport redis\nfrom pyxqueue import TaskQueue\n\nclient = redis.Redis()\nqueue = TaskQueue(client, stream_key='background-task')\n\n\n@queue.task\ndef sleep(n):\n print(f'going to sleep for {n} seconds')\n time.sleep(n)\n print(f'woke up after {n} seconds')\n\n\nif __name__ == '__main__':\n import sys\n usage = 'Usage: python background-task.py (worker | test)'\n if len(sys.argv) != 2:\n print(usage)\n elif sys.argv[1] == 'worker':\n queue.run()\n elif sys.argv[1] == 'test':\n sleep(2)\n else:\n print(usage)\n```\n\n### rpc\n\n```\nimport redis\nfrom pyxqueue import TaskQueue\n\nclient = redis.Redis()\nqueue = TaskQueue(client, stream_key='rpc')\n\n\n@queue.task\ndef fib(n):\n a, b = 0, 1\n for _ in range(n):\n a, b = b, a + b\n return b\n\n\nif __name__ == '__main__':\n import sys\n usage = 'Usage: python rpc.py (worker | test)'\n if len(sys.argv) != 2:\n print(usage)\n elif sys.argv[1] == 'worker':\n queue.run()\n elif sys.argv[1] == 'test':\n fib_100k_result = fib(100_000)\n print(f'100kth fib number starts ends with: {str(fib_100k_result.get())[-6:]}')\n else:\n print(usage)\n```\n\n### progress\n\n```\nimport time\n\nimport redis\nfrom pyxqueue import TaskQueue\n\nclient = redis.Redis()\nqueue = TaskQueue(client, stream_key='progress')\n\n\n@queue.task\ndef long_work():\n for i in range(100):\n queue.update_task_progress(i)\n time.sleep(1)\n\n\nif __name__ == '__main__':\n import sys\n usage = 'Usage: python progress.py (worker | test)'\n if len(sys.argv) != 2:\n print(usage)\n elif sys.argv[1] == 'worker':\n queue.run()\n elif sys.argv[1] == 'test':\n long_work()\n else:\n print(usage)\n```\n\nto get task progress:\n\n```\nqueue.get_task_progress(task_id)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/FuGangqiang/pyxqueue", "keywords": "redis stream queue", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyxqueue", "package_url": "https://pypi.org/project/pyxqueue/", "platform": "", "project_url": "https://pypi.org/project/pyxqueue/", "project_urls": { "Homepage": "https://github.com/FuGangqiang/pyxqueue" }, "release_url": "https://pypi.org/project/pyxqueue/0.0.15/", "requires_dist": [ "redis (>=3.0.0)" ], "requires_python": "", "summary": "a multi-processes task queue using redis streams.", "version": "0.0.15" }, "last_serial": 4908914, "releases": { "0.0.11": [ { "comment_text": "", "digests": { "md5": "9a2e209d67d87b29136984e760c5d4f0", "sha256": "3dcf1d9373ec14fc06fc704bf017441855e7dfcd1771adb9c55654c727cc83b0" }, "downloads": -1, "filename": "pyxqueue-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a2e209d67d87b29136984e760c5d4f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5628, "upload_time": "2019-01-19T06:45:03", "url": "https://files.pythonhosted.org/packages/26/84/ed28b8233643a391edd830e6a55c4e41814d4c11a4f9593c6e5677ef05be/pyxqueue-0.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf6c57579fab303abdd0ae082cdb6019", "sha256": "11dd3b854648e0b5166164db6e76722fe519e9ed31133b45c4139a170d216e19" }, "downloads": -1, "filename": "pyxqueue-0.0.11.tar.gz", "has_sig": false, "md5_digest": "cf6c57579fab303abdd0ae082cdb6019", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4731, "upload_time": "2019-01-19T06:45:04", "url": "https://files.pythonhosted.org/packages/6c/34/5fe8022835da36a26905fac9f95476b51dd16e0ff02efc28e5a14c788c10/pyxqueue-0.0.11.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "96ffe865dbccaeb577af7168f31485a3", "sha256": "93565a20d0f99610ffd022799ba3a51c15985a021cd49e862d0d2ed975bf0489" }, "downloads": -1, "filename": "pyxqueue-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96ffe865dbccaeb577af7168f31485a3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5688, "upload_time": "2019-03-07T07:14:21", "url": "https://files.pythonhosted.org/packages/93/8b/8608fac5ac790fa9e90bb40c9b43786b8a652a0f98f7f18be44d5fabaa60/pyxqueue-0.0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e632f38db01640e344a2ed4b4e63f18", "sha256": "5eec47d93ff303151d76915244763f6781558a70151876b34d3e46244d4ea118" }, "downloads": -1, "filename": "pyxqueue-0.0.13.tar.gz", "has_sig": false, "md5_digest": "3e632f38db01640e344a2ed4b4e63f18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4797, "upload_time": "2019-03-07T07:14:22", "url": "https://files.pythonhosted.org/packages/7f/9a/3dc13d731d62a1c9525008f2102d1190b0edc81b74b30b553d14fe67ae0e/pyxqueue-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "a8192f43593586b0d6640a60671e8c02", "sha256": "1ba4dc27e009900ddabad07ebc6aa584d282ff90fb99b8356bdda9624427da5f" }, "downloads": -1, "filename": "pyxqueue-0.0.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a8192f43593586b0d6640a60671e8c02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5694, "upload_time": "2019-03-07T07:47:39", "url": "https://files.pythonhosted.org/packages/6c/a9/7e7f0bc96c0dcb5633dbca1fae37bee50b90d74fa04c927aebabd3ba218b/pyxqueue-0.0.14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "219dbc817e27e58fb1c9c757038b45b6", "sha256": "7bfdc04ed927c689e80d70d1630c8bad647b1fdfb00e43f42dbd382d58c7cc1d" }, "downloads": -1, "filename": "pyxqueue-0.0.14.tar.gz", "has_sig": false, "md5_digest": "219dbc817e27e58fb1c9c757038b45b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4805, "upload_time": "2019-03-07T07:47:40", "url": "https://files.pythonhosted.org/packages/be/1c/3a009e408ea91cb3d7da249c832899b23037fb1901faa378e1e142f74b37/pyxqueue-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "49116ceefb26dda91270cc50ae5eefc0", "sha256": "4e1e08b0103105d66a5da8735d95bd58fa9ce50fadc1028201b1c5de930bdfa5" }, "downloads": -1, "filename": "pyxqueue-0.0.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49116ceefb26dda91270cc50ae5eefc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5717, "upload_time": "2019-03-07T07:59:25", "url": "https://files.pythonhosted.org/packages/e0/e3/be9451861a3d97dc73e931934a03796f0982505c9c4343fb5820629932ca/pyxqueue-0.0.15-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b95946502759ac39b9ace1130adb3d9e", "sha256": "f63f887edbc47d33528edfaf3806c58172bf173c0f3ca6e9c9a0cce7f0811812" }, "downloads": -1, "filename": "pyxqueue-0.0.15.tar.gz", "has_sig": false, "md5_digest": "b95946502759ac39b9ace1130adb3d9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4817, "upload_time": "2019-03-07T07:59:26", "url": "https://files.pythonhosted.org/packages/d3/1e/e7d2710de003db79969c41fae91028b70490d99c6ed1c919380837c7842a/pyxqueue-0.0.15.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "49116ceefb26dda91270cc50ae5eefc0", "sha256": "4e1e08b0103105d66a5da8735d95bd58fa9ce50fadc1028201b1c5de930bdfa5" }, "downloads": -1, "filename": "pyxqueue-0.0.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49116ceefb26dda91270cc50ae5eefc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5717, "upload_time": "2019-03-07T07:59:25", "url": "https://files.pythonhosted.org/packages/e0/e3/be9451861a3d97dc73e931934a03796f0982505c9c4343fb5820629932ca/pyxqueue-0.0.15-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b95946502759ac39b9ace1130adb3d9e", "sha256": "f63f887edbc47d33528edfaf3806c58172bf173c0f3ca6e9c9a0cce7f0811812" }, "downloads": -1, "filename": "pyxqueue-0.0.15.tar.gz", "has_sig": false, "md5_digest": "b95946502759ac39b9ace1130adb3d9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4817, "upload_time": "2019-03-07T07:59:26", "url": "https://files.pythonhosted.org/packages/d3/1e/e7d2710de003db79969c41fae91028b70490d99c6ed1c919380837c7842a/pyxqueue-0.0.15.tar.gz" } ] }