AMQPQueue::ack
(PECL amqp >= Unknown)
AMQPQueue::ack — Acknowledge the receipt of a message
Beschreibung
public bool AMQPQueue::ack
( int
$delivery_tag
[, int $flags = AMQP_NOPARAM
] )
This method allows the acknowledgement of a message that is retrieved without the AMQP_AUTOACK flag through
AMQPQueue::get() or AMQPQueue::consume()
Parameter-Liste
-
delivery_tag -
The message delivery tag of which to acknowledge receipt.
-
flags -
The only valid flag that can be passed is
AMQP_MULTIPLE.
Fehler/Exceptions
Throws AMQPChannelException if the channel is not open.
Throws AMQPConnectionException if the connection to the broker was lost.
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiele
Beispiel #1 AMQPQueue::ack() example with AMQPQueue::get()
<?php
/* Create a connection using all default credentials: */
$connection = new AMQPConnection();
$connection->connect();
$channel = new AMQPChannel($connection);
/* create a queue object */
$queue = new AMQPQueue($channel);
//declare the queue
$queue->declare('myqueue');
//get the next message, but don't mark it as delivered
$message = $queue->get(AMQP_NOPARAM);
echo $message['msg'];
//acknowledge the message as received
$queue->ack($message['delivery_tag']);
?>
Beispiel #2 AMQPQueue::ack() example with AMQPQueue::consume()
<?php
/* Create a connection using all default credentials: */
$connection = new AMQPConnection();
$connection->connect();
/* create a queue object */
$queue = new AMQPQueue($connection);
//declare the queue
$queue->declare('myqueue');
$options = array(
'min' => 1,
'max' => 10,
'ack' => false
);
//get the messages, but don't mark them as delivered
$messages = $queue->consume($options);
foreach ($messages as $message) {
echo $message['message_body'];
//acknowledge the message as received
$queue->ack($message['delivery_tag']);
}
?>
There are no user contributed notes for this page.
