Files
kumomta/docs/reference/kumo.amqp/build_client.md
T
Wez Furlong 5b914a597a deprecating the lapin-based amqp client
This never worked as well as the other amqp option that we support,
and upgrading it to the current version is a bit of a chore.

I'd rather just drop this dep and keep things more trim.

Since none of our sponsors are using the lapin implementation, let's
mark it as deprecated and we can take it out after we cut the next
stable release.
2025-10-08 11:17:55 +01:00

2.0 KiB

status
status
deprecated

build_client

kumo.amqp.build_client(URI)

!!! note This function is deprecated and will be removed in a future release. Please migrate to kumo.amqp.basic_publish.

Constructs an AMQP client object, using the underlying lapin client implementation.

URI is the URI that references the AMQP server to which you want to connect.

local client = kumo.amqp.build_client 'amqp://localhost'
local confirm = client:publish {
  routing_key = 'hello',
  payload = 'w00t!',
}
local result = confirm:wait()
assert(result.status == 'NotRequested')

Client Methods

The returned client object has the following methods:

client:publish({PARAMS})

Publishes a message. PARAMS is an object style table with the following keys:

  • routing_key - required string; the name of the queue to which to send the message
  • payload - required string; the message to send
  • exchange - optional string; the exchange through which to send the message. If unspecified, the empty string is used, which corresponds to a default exchange.

Returns a confirmation object that can be used to await the final disposition of the send. That confirmation object has a single wait method which returns a confirmation object with the following fields:

  • status - one of "NotRequested", "Ack", or "Nack" depending on the disposition of the message delivery attempt.
  • reply_code - may be nil, but is otherwise a status code from the ack returned from the queue machinery.
  • reply_text - may be nil, but is otherwise status text from the ack returned from the queue machinery.
local client = kumo.amqp.build_client 'amqp://localhost'
local confirm = client:publish {
  routing_key = 'hello',
  payload = 'w00t!',
}
local result = confirm:wait()
assert(result.status == 'NotRequested')

client:close()

{{since('2024.09.02-c5476b89')}}

Explicitly and cleanly closes the connection to the AMQP server. Calling it multiple times will yield an error.