Consumers

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