interface ListableReceiverInterface implementsReceiverInterface

Used when a receiver has the ability to list messages and find specific messages.

A receiver that implements this should add the TransportMessageIdStamp to the Envelopes that it returns.

Methods

iterable
get()

Receives some messages.

void
ack(Envelope$envelope)

Acknowledges that the passed message was handled.

void
reject(Envelope$envelope)

Called when handling the message failed and it should not be retried.

iterable
all(int$limit =null)

Returns all the messages (up to the limit) in this receiver.

Envelope|null
find(mixed$id)

Returns the Envelope by id or none.

Details

iterable get()

Receives some messages.

While this method could return an unlimited number of messages, the intention is that it returns only one, or a "small number" of messages each time. This gives the user more flexibility: they can finish processing the one (or "small number") of messages from this receiver and move on to check other receivers for messages. If this method returns too many messages, it could cause a blocking effect where handling the messages received from one call to get() takes a long time, blocking other receivers from being called.

If applicable, the Envelope should contain a TransportMessageIdStamp.

If a received message cannot be decoded, the message should not be retried again (e.g. if there's a queue, it should be removed) and a MessageDecodingFailedException should be thrown.

Return Value

iterable

Exceptions

TransportException If there is an issue communicating with the transport

void ack(Envelope$envelope)

Acknowledges that the passed message was handled.

Parameters

Envelope $envelope

Return Value

void

Exceptions

TransportException If there is an issue communicating with the transport

void reject(Envelope$envelope)

Called when handling the message failed and it should not be retried.

Parameters

Envelope $envelope

Return Value

void

Exceptions

TransportException If there is an issue communicating with the transport

iterable all(int$limit =null)

Returns all the messages (up to the limit) in this receiver.

Messages should be given the same stamps as when using ReceiverInterface::get().

Parameters

int $limit

Return Value

iterable

Envelope|null find(mixed$id)

Returns the Envelope by id or none.

Message should be given the same stamps as when using ReceiverInterface::get().

Parameters

mixed $id

Return Value

Envelope|null