Rabbitmq在崩溃/重启后恢复已确认的消息

时间:2015-05-06 15:15:13

标签: php rabbitmq php-amqplib

我在osx上使用带有PHP的兔子。

简单的例子。我有一个具有50K持久消息的持久队列。 我运行消费者脚本。有脚本的例子:

...
while ($this->run) {
    if ($message = $channel->basic_get("testq.{$this->id}")) {
        $channel->basic_ack($message->delivery_info['delivery_tag']);
        echo "{$message->delivery_info['routing_key']} (".$message->get('priority')."): {$message->body}\n";
        $sleep = 15000; // usecs
    } else {
        usleep($sleep);
    }
    ...
}
...

在运行消费者脚本之后,我在兔子webadmin中看到该队列中的消息数量正在降低。

似乎一切正常。

如果我使用CTRL + C和脚本杀死php使用者脚本,直到停止使用例如10K消息,我在队列中留下了40K消息。

没关系。

但是如果我用kill -9或CRLT + C杀死rabbitmq,而消费者脚本正在运行(我想模拟崩溃),重新启动消息后该队列中的消息恢复到50K ..

我不明白为什么?哪里可能是问题?

0 个答案:

没有答案