我正在使用C-compilled库进行兔子AMQP。 尝试从队列中获取消息而不确认我只在消费回调中获得前3个消息。 服务器监控显示没有确认就收到了3条消息。
如果我使用php-amqplib,我会在队列中收到来自队列的所有消息而不会确认。
代码如:
$cnn = new AMQPConnection();
$cnn->setLogin('guest');
$cnn->setPassword('guest');
if ($cnn->connect()) {
} else {
die("Error");
}
$channel = new AMQPChannel($cnn);
$exchange = new AMQPExchange($channel);
$exchange->setName('test');
$exchange->setType(AMQP_EX_TYPE_TOPIC);
$exchange->setFlags(AMQP_DURABLE | AMQP_AUTODELETE | AMQP_PASSIVE);
try {
$exchange->declareExchange();
} catch (Exception $e) {
echo 'Error: '.$e->getMessage();
die(0);
}
$q = new AMQPQueue($channel);
$q->setName('queue');
$q->setFlags(AMQP_DURABLE | AMQP_PASSIVE);
$cnt = $q->declareQueue();
$q->bind($exchange->getName(),'token');
$cb = function(AMQPEnvelope $params, AMQPQueue $queue) {
print_r($params->getBody());
echo "\n";
};
while (true) {
$q->consume($cb);
}
$cnn->disconnect();