私はクロニクルキューから読み取るために、次のコード(それはKotlinで書かれていますが、それは問題ではありません)があります。どのように私は、キューから前の10件のレコードを読み、続行するために、コメントコードを変更することができますChronicle Queueから最後のNレコードを読み取るには?
val queue = ChronicleQueueBuilder.single(path).build()
val tailer = queue.createTailer()
tailer.toEnd()
// // This code is wrong
// val lastIndex = tailer.index()
//
// val shift = lastIndex - 10
// if (shift > 0) {
// tailer.moveToIndex(lastIndex)
// }
while (true) {
val text = await(tailer)
if (prefix == null) {
println(text)
} else {
if (text.startsWith(prefix)) {
// Would be nice without additional allocation ...
println(text.substring(prefix.length + 1))
}
}
}
を?
理由:理由は、ログを表示するためにキューを使用する場合に便利です。以前のいくつかのロギングステートメントを見て、新しいロギングステートメントが来るのを見たいと思っています。
コメントしたコードの問題は何か?通常は元に戻す必要があります。 – Krishas
もう一度テストします。それは私が考えるいくつかの例外を投げた。私はインデックスが正確に何であるかわからないので、それがうまくいくかどうかはわかりません。バイナリデータへのポインタですか?それは私の記録の論理的なインデックスですか?私はこれをよりよく理解するためにプロジェクトのテストを見ていきます。 –
私はコミッタではありませんが、自分の経験では、新しいドキュメントごとにインデックスが増え、インデックスを10だけ引いてそこから読み取るだけで、最新の10ドキュメントが得られます。また、インデックスにはポインタとサイクル数が含まれている必要があります。 – Krishas