Subject: | ack seems to confuse its arguments |
This code here:
while (my $message = $mq->get(1, 'routing-key-a', { no_ack => 1})) {
print Dumper $message;
$mq->ack(1, $message->{delivery_tag});
}
Produces this output:
$VAR1 = {
'body' => 'Dies ist die Payload',
'redelivered' => 0,
'props' => {
'message_id' => 'made-up-1',
'content_type' => 'text/plain',
'timestamp' => 1413877470,
'app_id' => 'produce.pl',
'content_encoding' => 'ASCII'
},
'routing_key' => 'a',
'delivery_tag' => '',
'message_count' => 0,
'exchange' => 'catchall'
};
basic_get: server channel error 406, message: PRECONDITION_FAILED - unknown delivery tag 1 at consume-ack.pl line 18.
It seems that ack interprets the first argument as the delivery tag, but according to the docs, it should be channel:
ack($channel, $delivery_tag, $multiple = 0)
It would be nice if I could ack messages :-)