gen_rmq v1.3.0 GenRMQ.Publisher behaviour View Source
A behaviour module for implementing the RabbitMQ publisher
Link to this section Summary
Functions
Returns a specification to start this module under a supervisor
Publishes given message
Starts GenRMQ.Publisher with given callback module linked to the current
process
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Publishes given message
publisher - name or PID of the publisher
message - raw payload to deliver
routing_key - optional routing key to set for given message
metadata - optional metadata to set for given message. Keys that
are not allowed in metadata are moved under the `:headers`
field. Do not include a `:headers` field here: it will be
created automatically with all non-standard keys that you have
provided.
Examples:
GenRMQ.Publisher.publish(TestPublisher, "{"msg": "hello"})
Starts GenRMQ.Publisher with given callback module linked to the current
process
module- callback module implementing GenRMQ.Publisher behaviour
Options
:name- used for name registration
Return values
If the publisher is successfully created and initialized, this function returns
{:ok, pid}, where pid is the PID of the publisher. If a process with the
specified publisher name already exists, this function returns
{:error, {:already_started, pid}} with the PID of that process.
Examples:
GenRMQ.Publisher.start_link(TestPublisher, name: :publisher)
Link to this section Callbacks
Invoked to provide publisher configuration
Return values
Mandatory:
uri - RabbitMQ uri
exchange - the name of the target exchange. If does not exist it will be created
Optional:
app_id - publishing application ID
Examples:
def init() do
[
exchange: "gen_rmq_exchange",
uri: "amqp://guest:guest@localhost:5672"
app_id: :my_app_id
]
end