Skip to content

Kami/ghettoq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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.

About

Redis based ghetto queue.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%