wabbit v0.4.0 Wabbit.Basic View Source
Functions to publish, consume and acknowledge messages.
Link to this section Summary
Functions
Acknowledges one or more messages
Registers a queue consumer process
Negative acknowledge of one or more messages
Publishes a message to an Exchange
Sets the message prefetch count or size (in bytes)
Rejects (and, optionally, requeues) a message
Link to this section Functions
Acknowledges one or more messages.
If multiple is set to true, all messages up to the one specified
by delivery_tag are considered acknowledged by the server.
Registers a queue consumer process.
The pid of the process can be set using the subscriber argument
and defaults to the calling process.
The consumer process will receive the following messages:
{:basic_deliver, payload, meta}- This is sent for each message consumed, wherepayloadcontains the message content andmetacontains all the metadata set when sending with Basic.publish or additional info set by the broker{:basic_consume_ok, %{consumer_tag: consumer_tag}}- Sent when the consumer process is registered with Basic.consume. The caller receives the same information as the return of Basic.consume{:basic_cancel, %{consumer_tag: consumer_tag, no_wait: no_wait}}- Sent by the broker when the consumer is unexpectedly cancelled (such as after a queue deletion){:basic_cancel_ok, %{consumer_tag: consumer_tag}}- Sent to the consumer process after a call to Basic.cancel
Options
:consumer_tag- Identifier for the consumer, valid within the current channel:no_local- If the no-local field is set the server will not send messages to the connection that published them:no_ack- If this field is set the server does not expect acknowledgements for messages:exclusive- Request exclusive consumer access, meaning only this consumer can access the queue:no_wait- If set, the server will not respond to the method:arguments- A set of arguments for the consume
Negative acknowledge of one or more messages.
If :multiple is set to true, all messages up to the one specified
by delivery_tag are considered as not acknowledged by the
server.
If :requeue is set to true, the message will be returned to the
queue and redelivered to the next available consumer. This is a
RabbitMQ specific extension to AMQP 0.9.1. It is equivalent to
reject, but allows rejecting multiple messages using the multiple
option.
Publishes a message to an Exchange.
This method publishes a message to a specific exchange. The message will be routed to queues as defined by the exchange configuration and distributed to any subscribers.
The parameter :exchange specifies the name of the exchange to
publish to. If set to empty string, it publishes to the default
exchange.
The :routing_key parameter specifies the routing key for the
message.
The :payload parameter specifies the message content as a binary.
In addition to the previous parameters, the following options can be used:
Options
:mandatory- If set, returns an error if the broker can’t route the message to a queue (defaultfalse):immediate- If set, returns an error if the broker can’t deliver te message to a consumer immediately (defaultfalse):content_type- MIME Content type:content_encoding- MIME Content encoding:headers- Message headers. Can be used with headers Exchanges:persistent- If set, uses persistent delivery mode. Messages marked aspersistentthat are delivered todurablequeues will be logged to disk:correlation_id- application correlation identifier:priority- message priority, ranging from 0 to 9:reply_to- name of the reply queue:expiration- how long the message is valid (in milliseconds):message_id- message identifier:timestamp- timestamp associated with this message (epoch time):type- message type as a string:user_id- creating user ID. RabbitMQ will validate this against the active connection user:app_id- publishing application ID
Examples
iex> Wabbit.Basic.publish channel, "Hello World!", exchange: "my_exchange", routing_key: "my_routing_key", persistent: true
:ok
Sets the message prefetch count or size (in bytes).
If :global is set to true this applies to the entire Connection,
otherwise it applies only to the specified Channel.
Options
:prefetch_size- Number of messages to be sent in advance:prefetch_count- Specifies a prefetch window in terms of whole messages:global- QoS settings scope
Rejects (and, optionally, requeues) a message.