{ "info": { "author": "Gabriel Bordeaux", "author_email": "pypi@gab.lc", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Database", "Topic :: Database :: Database Engines/Servers", "Topic :: Software Development" ], "description": "redis-priority-queue\n====================\n\n`Build Status `__\n`codecov `__\n\nredis-priority-queue is a simple work queue similar to `Redis\nlists `__ with the following added\nfeatures:\n\n- An item can be added with a priority (between -9007199254740992 and\n 9007199254740992)\n- Queues are automatically de-duplicated (duplicate items are voided\n when pushing them)\n- Multiple items can be popped from the queue at the same time\n- A `queue monitoring tool <#queue-monitoring>`__ to easily see how\n many items are in each queue\n\nredis-priority-queue is based on `Redis sorted\nsets `__ and all sorted sets\ncommands can be used alongside this project.\n\nClients\n-------\n\n- `Python client `__\n- `PHP client `__\n\nBasic usage\n-----------\n\nBash example\n~~~~~~~~~~~~\n\n::\n\n -- Generic\n redis-cli --eval src/redis-priority-queue.lua null null , [push|pop|peek|count] my_list (arg1, arg2...)\n\n -- Push an item\n redis-cli --eval src/redis-priority-queue.lua null null , push my_super_list my_item\n\n -- Pop an item\n redis-cli --eval src/redis-priority-queue.lua null null , pop my_super_list\n\n``push``: Push an item in a queue\n---------------------------------\n\nUsage\n~~~~~\n\n``push my_list item [(int) priority (default: 100)]``\n\nExamples\n~~~~~~~~\n\n::\n\n -- Push an item with the default priority (100)\n push my_super_list my_item\n\n -- Push an item with a priority of 200\n push my_super_list my_item 200\n\nReturn\n~~~~~~\n\nOutput is similar to `ZADD `__\n\n``pop``: Pop an item from the queue\n-----------------------------------\n\n.. _usage-1:\n\nUsage\n~~~~~\n\n``pop my_list [(string) asc/desc (default: 'desc')] [(int) numer_of_items (default: 1')]``\n\n.. _examples-1:\n\nExamples\n~~~~~~~~\n\n::\n\n -- Pop 1 item ordered by descending priority\n pop my_super_list\n\n -- Pop 1 item ordered by ascending priority\n pop my_super_list asc\n\n -- Pop 5 items ordered by descending priority\n pop my_super_list desc 5\n\n.. _return-1:\n\nReturn\n~~~~~~\n\nOutput is similar to\n`ZRANGEBYSCORE `__\n\n``peek``: View a set of items from the list\n-------------------------------------------\n\nAliases: ``list``, ``view``\n\n.. _usage-2:\n\nUsage\n~~~~~\n\nSame as ``pop`` but items are not removed from the list.\n\n``count``: Count items in a queue\n---------------------------------\n\nAlias: ``size``\n\n.. _usage-3:\n\nUsage\n~~~~~\n\n``count my_list [(int) priority_min] [(int) priority_max]``\n\n.. _examples-2:\n\nExamples\n~~~~~~~~\n\n::\n\n -- Count all items from the list\n count my_super_list\n\n -- Count all items with a priority between 1 and 1110\n count my_super_list 1 1110\n\n.. _return-2:\n\nReturn\n~~~~~~\n\nOutput is similar to `ZCOUNT `__\n\nQueue monitoring\n----------------\n\nThe queues can be easily monitored with the Python script\n``src/queue_monitor.py``\n\nTo use the queue monitor, you need to ensure python is installed and use\nthe following command:\n\n::\n\n # Installation\n pip3 install rpq\n\n # Usage\n rpq_monitor\n\nUsage example\n~~~~~~~~~~~~~\n\n::\n\n # Basic usage\n rpq_monitor -H [host] -p [port] (-a [auth] -n [dbnum])\n +-------------------+-------+-----------+----------+\n | Queue name | Total | Up to 100 | From 101 |\n +-------------------+-------+-----------+----------+\n | book_orders | 44 | 12 | 32 |\n | book_recycle | 223 | 123 | 100 |\n | book_returns | 13 | 13 | 0 |\n | late_fees_pending | 112 | 56 | 56 |\n | new_books | 1,144 | 1,120 | 24 |\n +-------------------+-------+-----------+----------+\n\n # Specify your own groups\n rpq_monitor -H [host] -p [port] (-a [auth] -n [dbnum]) -s \"[[0, 1000], [1001, 2000], [2001, 3000]]\"\n +-------------------+-------+------------+----------------+----------------+\n | Queue name | Total | 0 to 1,000 | 1,001 to 2,000 | 2,001 to 3,000 |\n +-------------------+-------+------------+----------------+----------------+\n | book_orders | 44 | 24 | 9 | 11 |\n | book_recycle | 223 | 127 | 40 | 56 |\n | book_returns | 13 | 13 | 0 | 0 |\n | late_fees_pending | 112 | 58 | 13 | 41 |\n | new_books | 1,144 | 1,142 | 2 | 0 |\n +-------------------+-------+------------+----------------+----------------+\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/gabfl/redis-priority-queue", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rpq", "package_url": "https://pypi.org/project/rpq/", "platform": "", "project_url": "https://pypi.org/project/rpq/", "project_urls": { "Homepage": "https://github.com/gabfl/redis-priority-queue" }, "release_url": "https://pypi.org/project/rpq/2.1/", "requires_dist": [ "redis", "argparse", "prettytable" ], "requires_python": "", "summary": "Simple Redis work queue with added features (priorities, pop multiple items at once)", "version": "2.1" }, "last_serial": 3898908, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "ea6b2bdfd21494275dfb20e4812c3dbb", "sha256": "29696798c685ebc5a3e09461a5f3aad8f4e37d6d8a5b69efb789a8a80b62720c" }, "downloads": -1, "filename": "rpq-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ea6b2bdfd21494275dfb20e4812c3dbb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8045, "upload_time": "2017-07-05T23:11:42", "url": "https://files.pythonhosted.org/packages/8a/c3/092b43363f2e7d618d81458bc57f8b9acfc0572ea71d4b75ac25f8263009/rpq-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7af59f1d2d5c9dcacc4d8733e4fd6266", "sha256": "e486e423a65e6814c03a6bcff604a2ffd1b1b2a94959c1e7ac7a3899c511b0cc" }, "downloads": -1, "filename": "rpq-1.0.4.tar.gz", "has_sig": false, "md5_digest": "7af59f1d2d5c9dcacc4d8733e4fd6266", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4109, "upload_time": "2017-07-05T23:11:44", "url": "https://files.pythonhosted.org/packages/5e/1f/6358be8143ac9f78896468dbd2aa37d22d548547fd4d0b787c22eca97d54/rpq-1.0.4.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "6763c5087a82e4c5f4a79c510d2a14f3", "sha256": "a535fcb23adc88bde6455b1e37e933a3115b65f8c8f2ed4d020d2b204bf39865" }, "downloads": -1, "filename": "rpq-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6763c5087a82e4c5f4a79c510d2a14f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9069, "upload_time": "2017-07-10T13:15:19", "url": "https://files.pythonhosted.org/packages/4b/66/3c56dda02fbd83b51df921b6e03695db5ae4b9080a7cd7be195bc0b88d2e/rpq-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86fa97052b103d9faae4bbd618baa08f", "sha256": "11a5a9e172b2621a027b978c869fa2d1e832ec23ca0e391682e7f3fb603fc75e" }, "downloads": -1, "filename": "rpq-1.1.tar.gz", "has_sig": false, "md5_digest": "86fa97052b103d9faae4bbd618baa08f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5602, "upload_time": "2017-07-10T13:15:20", "url": "https://files.pythonhosted.org/packages/f5/46/f56ae05988f3f1e4d246b0e16bb656ab7d72e55858f6931ebdbac824afb0/rpq-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "900b4ba0eb2dc3a5574fad6876cfeca9", "sha256": "48150c13559e909c51a0536335db70ff9045fc3856a40cac3f9f2feedc0f5e64" }, "downloads": -1, "filename": "rpq-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "900b4ba0eb2dc3a5574fad6876cfeca9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9065, "upload_time": "2017-07-12T15:46:39", "url": "https://files.pythonhosted.org/packages/17/32/a3ed419a155640c29538535a571e6554e43e540014b212f35ca4eac23612/rpq-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfb46fe5b098e0d7532bf549f2c0b592", "sha256": "f42e19def8b5529cf2bf8f8659958e9661db6ca716bb5476ff7cd01bf5c763b4" }, "downloads": -1, "filename": "rpq-1.2.tar.gz", "has_sig": false, "md5_digest": "cfb46fe5b098e0d7532bf549f2c0b592", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6868, "upload_time": "2017-07-12T15:46:40", "url": "https://files.pythonhosted.org/packages/4a/52/a70ff4f5cc4a09b814ebe0c92ad3767118de8a9daf7d8faa6ba9980eef0d/rpq-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "608e6596767dc9a23cb9681bf884604f", "sha256": "6ea8649b4c4d5028ec53f418c1752841c5f1049b70ae877ca59e235bb096067d" }, "downloads": -1, "filename": "rpq-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "608e6596767dc9a23cb9681bf884604f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9440, "upload_time": "2017-07-14T13:01:30", "url": "https://files.pythonhosted.org/packages/0b/8b/fefb9bf36fa6dc0531390be9a4c0a512260ac1b7f0bbcab9af94857b8d1c/rpq-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc489de04881fbbb056500afb9bb7de7", "sha256": "d71b0ec76cbe06d5e34768807b89de59ac6a1529687539cf5666371bd5a753a8" }, "downloads": -1, "filename": "rpq-1.2.1.tar.gz", "has_sig": false, "md5_digest": "cc489de04881fbbb056500afb9bb7de7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7150, "upload_time": "2017-07-14T13:01:31", "url": "https://files.pythonhosted.org/packages/09/5c/3ebfffaaa67c6a9f47312b2775f65c8fa1f2966cdf68b7bbf01d83d34831/rpq-1.2.1.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "7bd95ed9b798a09c044e7b7bd8d79976", "sha256": "c672a6ea18c4d346abbc1d60c0d6f9e548e4eef32a05b54c189634a9cf8593f3" }, "downloads": -1, "filename": "rpq-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bd95ed9b798a09c044e7b7bd8d79976", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9760, "upload_time": "2017-07-21T19:58:30", "url": "https://files.pythonhosted.org/packages/22/3a/3d7afa1879cc9682794d4a66ea48d319f3e289fc8b061722f1406667a39c/rpq-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad14105caf6d23deeda9a162cf954b64", "sha256": "c72146ef02890fac7c9712d02730b55a29897db887cf6dbdd95a895bcd1a6910" }, "downloads": -1, "filename": "rpq-2.0.tar.gz", "has_sig": false, "md5_digest": "ad14105caf6d23deeda9a162cf954b64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7463, "upload_time": "2017-07-21T19:58:31", "url": "https://files.pythonhosted.org/packages/6e/e1/8e42dcdb89afa06172f0d83ed53e15e185a302542048dc0f0d31c0f01802/rpq-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "8ef828ec29b26298dfef1896e9558d21", "sha256": "7d3ce825bb1418a925645846f94c67d8472e493535189a203e3d16260db82165" }, "downloads": -1, "filename": "rpq-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ef828ec29b26298dfef1896e9558d21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10261, "upload_time": "2018-05-25T13:35:58", "url": "https://files.pythonhosted.org/packages/43/8c/0ea089c474b2210b8c74bd96df7d82bd4a648aecc45bfc4122417f91678e/rpq-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93bbb876ec7fdf611e7e6f800bd1c9ed", "sha256": "fbaa6918b3a1b54555d63ffe3c02475d95e1e4f967e9680da678aa2efd264b45" }, "downloads": -1, "filename": "rpq-2.1.tar.gz", "has_sig": false, "md5_digest": "93bbb876ec7fdf611e7e6f800bd1c9ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7753, "upload_time": "2018-05-25T13:35:59", "url": "https://files.pythonhosted.org/packages/6a/b5/5ecc0a6009e1ec625488634035e00111895900d4e5b7aa53b445b479482a/rpq-2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ef828ec29b26298dfef1896e9558d21", "sha256": "7d3ce825bb1418a925645846f94c67d8472e493535189a203e3d16260db82165" }, "downloads": -1, "filename": "rpq-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ef828ec29b26298dfef1896e9558d21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10261, "upload_time": "2018-05-25T13:35:58", "url": "https://files.pythonhosted.org/packages/43/8c/0ea089c474b2210b8c74bd96df7d82bd4a648aecc45bfc4122417f91678e/rpq-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93bbb876ec7fdf611e7e6f800bd1c9ed", "sha256": "fbaa6918b3a1b54555d63ffe3c02475d95e1e4f967e9680da678aa2efd264b45" }, "downloads": -1, "filename": "rpq-2.1.tar.gz", "has_sig": false, "md5_digest": "93bbb876ec7fdf611e7e6f800bd1c9ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7753, "upload_time": "2018-05-25T13:35:59", "url": "https://files.pythonhosted.org/packages/6a/b5/5ecc0a6009e1ec625488634035e00111895900d4e5b7aa53b445b479482a/rpq-2.1.tar.gz" } ] }