Rabbitmq восстанавливает подтвержденные сообщения после сбоя / перезапуска

Я использую кролика с PHP на OSX.

Простой пример У меня одна длительная очередь с 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);
}
...
}
...

После запуска потребительского скрипта я вижу в rabbit webadmin, что количество сообщений из этой очереди уменьшается.

Кажется, все в порядке.

Если я убью скрипт PHP-потребителя с помощью CTRL + C и сценарий до остановки будет использован, например, 10K-сообщений, я вижу в этих 40K-сообщениях, оставшихся в очереди.

Все нормально.

Но если я убью rabbitmq с помощью kill -9 или CRLT + C, в то время как потребительский скрипт работает (я хочу имитировать сбой), после перезапуска количество сообщений в этой очереди восстанавливается до 50K ..

Я не понимаю почему? в чем может быть проблема?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]