Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

128 lines (86 sloc) 3.285 kb
============================================================================
ghettoq - Ghetto Queue using Redis or Django Models.
============================================================================
:version: 0.4.2
Introduction
============
ghettoq is a ghetto queue framework, used to implement Redis, MongoDB,
Beanstalk and Django database support for
`carrot`_
.. _`carrot`: http://pypi.python.org/pypi/carrot
Installation
============
You can install ``ghettoq`` either via the Python Package Index (PyPI)
or from source.
To install using ``pip``,::
$ pip install ghettoq
To install using ``easy_install``,::
$ easy_install ghettoq
If you have downloaded a source tarball you can install it
by doing the following,::
$ python setup.py build
# python setup.py install # as root
Examples
========
>>> from ghettoq.simple import Connection
>>> import simplejson
>>> conn = Connection("redis", host="localhost", database=1)
>>> # Publishing messages
>>> q = conn.Queue("tasks")
>>> payload = {"name": "George Constanza"}
>>> q.put(simplejson.dumps(payload))
>>> # Consuming messages
>>> message = q.get()
>>> simplejson.loads(message)
{"name": "George Constanza"}
# Empty raises ghettoq.messaging.Empty
>>> q.get()
Empty
Using Django database support
-----------------------------
If settings is already configured you don't have to specify any
connection options.
>>> from ghettoq.simple import Connection
>>> conn = Connection("database")
>>> queue = conn.Queue(name="tasks")
>>> queue.put("To whom it may concern")
>>> queue.get()
"To whom it may concern"
Using MongoDB support
-----------------------------
If settings is already configured you don't have to specify any
connection options. The settings attrs used are:
* BROKER_HOST: '127.0.0.1' if not set
* BROKER_PORT: 27017 if not set
* BROKER_VHOST (Database Name): 'ghettoq' if not set
* Collection name: "messages"... should be added support for BROKER_COL settings var?
>>> from ghettoq.simple import Connection
>>> conn = Connection("mongodb")
>>> queue = conn.Queue(name="tasks")
>>> queue.put("To whom it may concern")
>>> queue.get()
"To whom it may concern"
Using Beanstalk support
-----------------------------
Requires the beanstalkc python library. If settings is already configured you
don't have to specify any connection options. The settings attrs used are:
* BROKER_HOST: 'localhost' if not set
* BROKER_PORT: 11300 if not set
* BROKER_VHOST: 'ghettoq' if not set
>>> from ghettoq.simple import Connection
>>> conn = Connection("beanstalk")
>>> queue = conn.Queue(name="tasks")
>>> queue.put("To whom it may concern")
>>> queue.get()
"To whom it may concern"
Beanstalk also supports priorities. Jobs with lower priory numbers are
executed before jobs with higher numbers. This number defaults to 0
and ranges from 0 to 2**32 - 1.
>>> queue.put("spam", priority=3)
>>> queue.get()
"spam"
License
=======
This software is licensed under the ``New BSD License``. See the ``LICENSE``
file in the top distribution directory for the full license text.
.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround
Jump to Line
Something went wrong with that request. Please try again.