我在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 ..
我不明白为什么?哪里可能是问题?