Message Translators

The message translator receives a “raw message” and process it to a suitable format expected by the handler.

The “raw message” is the message received by the consumer “as-is”.

It could be defined via LOAFER_DEFAULT_MESSAGE_TRANSLATOR_CLASS setting.

Implementation

The message translator class should implement the method translate like:

class MyMessageTranslator(object):

    def translate(self, message):
        return {'content': int(message)}

And it should return a dictionary in the format:

return {'content': processed_message}

The processed_message is the message delivered to handler.

In the example above, message is supposed to be an integer and will be delivered as integer too.

The message parameter in def translate is always a string object.

If processed_message is None the message will be ignored and not acknowledged.

Unhandled errors also makes the message to be ignored, but it’s a good practice to handle those errors.