{ "info": { "author": "Mozilla Foundation", "author_email": "bbangert@mozilla.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "======\nQueuey\n======\n\n.. image:: https://secure.travis-ci.org/mozilla-services/queuey.png?branch=master\n :width: 82px\n :height: 13px\n :alt: Travis CI build report\n :target: https://secure.travis-ci.org/#!/mozilla-services/queuey\n\nRead the full documentation at http://queuey.readthedocs.org/\n\nWat? Another message queue?\n\nGiven the proliferation of message queue's, one could be inclined to believe\nthat inventing more is not the answer. Using an existing solution was\nattempted multiple times with most every existing message queue product.\n\nThe others failed (for our use-cases).\n\nQueuey is meant to handle some unique conditions that most other message\nqueue solutions either don't handle, or handle very poorly. Many of them for\nexample are written for queues or pub/sub situations that don't require\npossibly longer term (multiple days) storage of not just many messages but\nhuge quantities of queues.\n\nQueuey Assumptions and Features:\n\n- Messages may persist for upwards of 3 days\n- Range scans with timestamps to rewind and re-read messages in a queue\n- Millions of queues may be created\n- Message delivery characteristics need to be tweakable based on the\n specific cost-benefit for a Queuey deployment\n- HTTP API for easy access by a variety of clients, including AJAX\n- Authentication system to support multiple 'Application' access to Queuey\n with optional Browser-ID client authentication\n- A single deployment may support multiple Applications with varying\n message delivery characteristics, and authentication restricted queue\n access\n\nQueuey can be configured with varying message guarantees, such as:\n\n- Deliver once, and exactly once\n- Deliver at least once (and under rare conditions, maybe more)\n- Deliver no more than once (and under rare conditions, possibly not deliver)\n\nChanging the storage back-end and deployment strategies directly affects\nthe message guarantee's. This enables the Queuey deployment to meet different\nrequirements and performance thresholds.\n\nFor more background on Queuey, see `the Mozilla wiki section on queuey `_.\n\nRequirements\n============\n\nMake sure you have the following software already\ninstalled before proceeding:\n\n- Java 1.6\n- Ant\n- Make\n- Python 2.7 (with virtualenv installed)\n\n\nInstallation\n============\n\nAfter downloading the repository for the first time,\ncd into the directory and run::\n\n $ make\n\nThis will do the following:\n\n- Create a virtual python environment\n- Install required python packages into this environment\n\nCassandra\n---------\n\nTo run Queuey, you need a storage back-end for the queues. The default\nstorage back-end is Cassandra. This installation has been automated in\nQueuey's Makefile, to install Cassandra in the same directory as\nQueuey::\n\n\tmake cassandra\n\nWhich will fetch the Cassandra server and set up the configuration.\n\nThe default (Cassandra) stores its data and files inside the local Cassandra\ndirectory so as not to interfere with any existing Cassandra installations on\nthe system.\n\nRunning\n=======\n\nRunning the Cassandra Server:\n-----------------------------\n\nThe message store (used by the server to route messages)\nand the HTTP server must be started separately. The steps\nare (starting from the root project directory)\n\n::\n\n\t./bin/cassandra/bin/cassandra -p cassandra.pid\n\nTo shut it down at any point in the future::\n\n\tkill -2 `cat cassandra.pid`\n\nRunning the Queuey Application:\n-------------------------------\n\nIt is recommended that you copy the `etc/queuey-dev.ini` file to\n`/etc/queuey.ini`. This will prevent accidental loss of configuration\nduring an update.\n\n::\n\n\tbin/pserve etc/queuey.ini\n\nTroubleshooting:\n----------------\n\n\"Upgrading\" Queuey may require reinitializing the schema. To reinitialize the\nschema, remove all data files. The new correct schema will be automatically\ncreated during the next Queuey startup.\n\n1. Stop Cassandra::\n\n kill -2 `cat cassandra.pid`\n\n2. Remove the Cassandra data directory (not the Cassandra binary directory)::\n\n rm -rf ./cassandra\n\n3. Start Cassandra::\n\n ./bin/cassandra/bin/cassandra -p cassandra.pid\n\n\nChangelog\n=========\n\n0.8 (2012-08-28)\n----------------\n\nFeatures\n********\n\n- Compatibility with Cassandra 1.1\n- Add new API's to get, post and update messages by their message id\n- Add new memory storage backend for testing purposes.\n- Add metlog based metrics logging.\n- Use pycassa's system manager support to programmatically create the\n Cassandra schema during startup.\n\nBug fixes\n*********\n\n- Fix precision errors in server side message id to timestamp conversion.\n- Enforce message keys to be valid UUID1 instead of just any UUID.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://queuey.readthedocs.org/", "keywords": "message-queue notifications server messaging queue", "license": "MPLv2.0", "maintainer": null, "maintainer_email": null, "name": "queuey", "package_url": "https://pypi.org/project/queuey/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/queuey/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://queuey.readthedocs.org/" }, "release_url": "https://pypi.org/project/queuey/0.8/", "requires_dist": null, "requires_python": null, "summary": "RESTful Message Queue", "version": "0.8" }, "last_serial": 677968, "releases": { "0.8": [ { "comment_text": "", "digests": { "md5": "bc26fea3e736ea69d4c2c7f85fcf68e8", "sha256": "ebe059d116de37c9271822e8e937251599be9ccf90792071d402a123a64ac193" }, "downloads": -1, "filename": "queuey-0.8.zip", "has_sig": false, "md5_digest": "bc26fea3e736ea69d4c2c7f85fcf68e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122768, "upload_time": "2012-08-28T08:05:41", "url": "https://files.pythonhosted.org/packages/05/fc/10471cffec14d15e9e9dad71376ba59303bf8f345460e1524e1af428e86d/queuey-0.8.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bc26fea3e736ea69d4c2c7f85fcf68e8", "sha256": "ebe059d116de37c9271822e8e937251599be9ccf90792071d402a123a64ac193" }, "downloads": -1, "filename": "queuey-0.8.zip", "has_sig": false, "md5_digest": "bc26fea3e736ea69d4c2c7f85fcf68e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122768, "upload_time": "2012-08-28T08:05:41", "url": "https://files.pythonhosted.org/packages/05/fc/10471cffec14d15e9e9dad71376ba59303bf8f345460e1524e1af428e86d/queuey-0.8.zip" } ] }