Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Message Queue for bottle.py built upon HotQueue.
Python
branch: master

Merge pull request #3 from bitdeli-chef/master

Add a Bitdeli Badge to README
latest commit 1e52f297ad
@waawal authored
Failed to load latest commit information.
.travis.yml
MANIFEST.in
README.rst
bottlehotqueue.py Fixing the inability to use a custom serializer, big thanks to @space…
setup.py
test.py

README.rst

bottlehotqueue

FIFO message queue plugin for bottle.py based on HotQueue

bottle.py is a fast and simple micro-framework for python web-applications.

HotQueue is a Python library that allows you to use Redis as a message queue within your Python programs.

Installation

$ pip install bottle-hotqueue

From source

$ python setup.py install

Dependencies

bottle and hotqueue

Getting Started

Importing and using the plugin with Bottle

import bottle
from bottlehotqueue import Plugin


app = bottle.Bottle()
hotqueue = Plugin(keyword="myhotqueue")
app.install(hotqueue)


@app.post('/put/:value', myhotqueue={'queue': 'myqueue'})
def send_message(value, myqueue):
    """ This will put an item in the queue hotqueue:myqueue.
    """
    return myqueue.put(value)


@app.get('/get/', myhotqueue={'queue': 'myqueue'})
def get_message(myqueue):
    """ We will now try to get a item from hotqueue:myqueue.
        if the queue is empty, we instead raise a 404.
    """
    result = myqueue.get()
    if not result:
        raise bottle.HTTPError(404, "Queue is Empty")
    return result

bottle.run(app, host='', port=8080)

The plugin will use json (or simplejson if available) as the standard serializer. This behaviour can be reverted to match the default implementation by passing asjson=False when instantiating the plugin. It will then conform to the standard HotQueue way of serializing objects by using pickle (or cpickle if available).

hotqueue = Plugin(keyword="myhotqueue", asjson=False)

Writing a simple consumer

import json
from hotqueue import HotQueue


queue = HotQueue("myqueue", host="localhost", serializer=json)

for item in queue.consume():
    print item

More on HotQueue: http://richardhenry.github.com/hotqueue/

License

MIT

Github links
Bitdeli badge
Something went wrong with that request. Please try again.