View Source WhiteRabbit.Processor behaviour (White Rabbit v0.2.0)
Processor behavior that modules can use to implememnt common callbacks to consume message payloads.
To use:
defmodule MyApp.JsonMessageProcessor do
@behaviour WhiteRabbit.Processor
def consumer_payload(payload, meta) do
%{delivery_tag: tag, redelivered: redelivered} = meta
case content_type do
"application/json" ->
{:ok, _json} = Jason.decode(payload)
# If successful, send back `{:ok, AMQP.Basic.delivery_tag()}`
{:ok, tag}
_ ->
{:error, :things_went_south}
end
end
end
Link to this section Summary
Callbacks
Callback function to process payload from a message.
Link to this section Types
@type processor_meta() :: map()
@type processor_payload() :: any()
@type tag() :: AMQP.Basic.delivery_tag()
Link to this section Callbacks
@callback consume_payload(processor_payload(), processor_meta()) :: {:ok, tag()} | consume_error()
Callback function to process payload from a message.
Must return {:ok, delivery_tag()} tuple to allow for proper ack.
Or {:error, reason} tuple for rejects.