Чтение сообщения из хронической очереди не перемещает текущий индекс в следующий цикл автоматически

Чтение сообщения из хронической очереди не приводит к автоматическому перемещению текущего индекса в следующий цикл. Я получаю следующие сообщения журналов: 697917 [SCHEDULER#4] INFO net.openhft.chronicle.queue.impl.single.SingleChronicleQueueExcerpts - Свернут 2 раза, чтобы найти файл следующего цикла. Это может произойти, если ваши пользователи не написали ничего некоторое время, оставляя файлы цикла с пробелом.

Что это значит?

Мои файлы очереди: 20160824.cq4 20160826.cq4 20160829.cq4 20160830.cq4. Файл 20160825.cq4 не существует, так как данные не были добавлены в очередь.

2 ответа

Можете ли вы уточнить, какую ошибку вы получаете?

У нас есть тесты, которые показывают, что пропуск пропущенных циклов работает как вперед, так и назад.

Что это значит?

Вы объяснили это здесь

"Файл 20160825.cq4 не существует, поскольку в очередь не было добавлено данных".

Вот почему цикл пропускается, и вы видите,

"Свернули 2 раза, чтобы найти следующий файл цикла. Это может произойти, если ваши пользователи не написали что-то некоторое время, оставляя файлы цикла с пробелом".

Это только к вашему сведению, так как я не могу комментировать, поскольку я только что зарегистрировался. Я видел подобную проблему, однако, не с пустыми журналами между днями, а всего лишь несколько дней. Я получил ложное возвращение от ExcerptTailer.readDocument и заметил, что индекс перескочил на число больше чем 2^32 между моим последним индексом и моим первым, указывающим на сдвиг цикла. Я только переключил версии с

  • скомпилируйте net.openhft: хроническая очередь:4.5.5
  • скомпилируйте net.openhft: хроническая очередь:4.5.27

И проблема была решена. Поскольку я нахожусь в стадии прототипирования, мне не нужно было отставать, поэтому я был довольно далеко позади. Я надеюсь, что это поможет, и это действительно выглядит разрешенным для моего случая в любом случае.

Другие вопросы по тегам