Rambla.Handlers.Amqp (Rambla v1.5.0)
View SourceDefault handler for AMQP connections. For this handler to work properly,
one must include and start :amqp application with the config like
config :amqp,
connections: [
local_conn: [url: "amqp://guest:guest@localhost:5672"],
],
channels: [
chan_1: [connection: :local_conn]
]
# Then you can access the connection/channel via `Rambla.Handlers.Amqp` as
Rambla.Handlers.Amqp.publish(:chan_1, %{message: %{foo: 42}, exchange: "rambla"})Known Options
:exchange(default:""):declare?(default: false):routing_key, (default:""):channel_provider(default:AMQP.Application):channel_publisher(default:AMQP.Basic)
Summary
Functions
The list of child_spec returned
to be embedded into a supervision tree.
An interface to publish messages using the FSM pool.
The entry point: this would start a supervisor with all the pools and stuff
Functions
The list of child_spec returned
to be embedded into a supervision tree.
Known options:
connection_options— akeyword()or a function of arity one, which is to receive channel names and return connection options as a listcount— the number of workers in the poolchild_opts— the options to be passed to the worker’s spec (you won’t need those)
Example
Rambla.Handlers.Redis.children_specs(
connection_options: [exchange: "amq.direct"], count: 3)
An interface to publish messages using the FSM pool.
The id is the specific to an implementation,
for Amqp it’d be the channel name, for instance.
The second parameter would be a payload, or, if the backend supports it,
the function of arity one, which would receive back the connection pid.
Example
Rambla.Handlers.Amqp.publish :channel_name, %{foo: :bar}
@spec start_link([ Supervisor.option() | Supervisor.init_option() | {:connection_options, keyword() | (term() -> keyword())} | {:count, non_neg_integer()} ]) :: Supervisor.on_start()
The entry point: this would start a supervisor with all the pools and stuff