AMQP.Exchange (amqp v4.1.0)
View SourceFunctions to operate on Exchanges.
Summary
Functions
Binds an Exchange to another Exchange using the exchange.bind AMQP method (a RabbitMQ-specific extension).
Declares an Exchange. The default Exchange type is direct.
Deletes an Exchange by name. When an Exchange is deleted all bindings to it are also deleted.
Convenience function to declare an Exchange of type direct.
Convenience function to declare an Exchange of type fanout.
Convenience function to declare an Exchange of type topic.
Unbinds an Exchange from another Exchange or a Queue using the exchange.unbind AMQP method (a RabbitMQ-specific extension).
Functions
@spec bind( AMQP.Channel.t(), destination :: String.t(), source :: String.t(), keyword() ) :: :ok | AMQP.Basic.error()
Binds an Exchange to another Exchange using the exchange.bind AMQP method (a RabbitMQ-specific extension).
Options
:routing_key- the routing key to use for the binding (default""):nowait- If set, the bind operation is asynchronous (defaultfalse):arguments- A list of arguments to pass when binding (of typeAMQP.arguments/0). See the README for more information (default to[])
@spec declare(AMQP.Channel.t(), AMQP.Basic.exchange(), type :: atom(), keyword()) :: :ok | AMQP.Basic.error()
Declares an Exchange. The default Exchange type is direct.
AMQP 0-9-1 brokers provide four pre-declared exchanges:
:directexchange: (empty string) oramq.direct:fanoutexchange:amq.fanout:topicexchange:amq.topic:headersexchange:amq.match(andamq.headersin RabbitMQ)
Besides the exchange name and type, the following options can be used:
Options
:durable- If set, keeps the Exchange between restarts of the broker:auto_delete- If set, deletes the Exchange once all queues unbind from it:passive- If set, returns an error if the Exchange does not already exist:internal- If set, the exchange may not be used directly by publishers, but only when bound to other exchanges. Internal exchanges are used to construct wiring that is not visible to applications:nowait- If set, the declare operation is asynchronous (defaultfalse):arguments- A list of arguments to pass when declaring (of typeAMQP.arguments/0). See the README for more information (default to[])
@spec delete(AMQP.Channel.t(), AMQP.Basic.exchange(), keyword()) :: :ok | AMQP.Basic.error()
Deletes an Exchange by name. When an Exchange is deleted all bindings to it are also deleted.
Options
:if_unused- If set, the server will only delete the exchange if it has no queue bindings:nowait- If set, the delete operation is asynchronous (defaultfalse)
@spec direct(AMQP.Channel.t(), AMQP.Basic.exchange(), keyword()) :: :ok | AMQP.Basic.error()
Convenience function to declare an Exchange of type direct.
Options
This function takes the same options as declare/4.
@spec fanout(AMQP.Channel.t(), AMQP.Basic.exchange(), keyword()) :: :ok | AMQP.Basic.error()
Convenience function to declare an Exchange of type fanout.
Options
This function takes the same options as declare/4.
@spec topic(AMQP.Channel.t(), AMQP.Basic.exchange(), keyword()) :: :ok | AMQP.Basic.error()
Convenience function to declare an Exchange of type topic.
Options
This function takes the same options as declare/4.
@spec unbind( AMQP.Channel.t(), destination :: String.t(), source :: String.t(), keyword() ) :: :ok | AMQP.Basic.error()
Unbinds an Exchange from another Exchange or a Queue using the exchange.unbind AMQP method (a RabbitMQ-specific extension).
Options
:routing_key- the routing key to use for the binding (default""):nowait- If set, the declare operation is asynchronous (defaultfalse):arguments- A list of arguments to pass when declaring (of typeAMQP.arguments/0). See the README for more information (defaults[])