Consumers

moksha.api.hub.consumer - The Moksha Consumer API

Moksha provides a simple API for creating “consumers” of message topics.

This means that your consumer is instantiated when the MokshaHub is initially loaded, and receives each message for the specified topic through the Consumer.consume() method.

Module author: Luke Macken <lmacken@redhat.com>

Creating

from moksha.api.hub import Consumer

class FeedConsumer(Consumer):

    # The topic to listen to.
    topic = 'moksha.feeds'

    # Automatically decode message as JSON, and encode when using self.send_message
    jsonify = True

    def consume(self, message):
        print message['topic']
        print message['body']

Note

The MokshaHub currently executes each consumer in their own Thread, so be sure to employ thread-safety precausions when implementing your Consumer.

Note

If your using AMQP, your topic can using wildcards. http://www.rabbitmq.com/faq.html#wildcards-in-topic-exchanges

Wildcard topics do not work using STOMP.

Installing

To “install” your consumer, you have to expose it on on the moksha.consumer entry-point. This can be done by updating your applications setup.py to make it look something like this:

entry_points="""

[moksha.consumer]
feedconsumer = myapplication.feedconsumer:FeedConsumer

"""

After modifying your entry-points, you’ll need to re-generate your project’s egg-info. The start-moksha script will do this for you.

$ python setup.py egg_info

Moksha will now automatically detect, instantiate, and feed your consumer.

Table Of Contents

Previous topic

Topics

Next topic

Producers

This Page