在Chronicle Queue中跳过文档的最佳方法是什么?

时间:2019-09-12 13:47:07

标签: chronicle-queue

从编年史队列中读取文档时,当我对当前文档不感兴趣时​​,跳过当前文档的最佳方法是什么?

即给定以下代码,我该怎么写而不是注释?

 val event = MotionEvent.obtain(
     0,
      SystemClock.uptimeMillis(),
      MotionEvent.ACTION_MOVE,
     sThumbLX.toFloat() / 32000, sThumbLY.toFloat() / 32000 * -1,
     1.0f,
     1.0f,
     0,
     1.0f,
     1.0f,
     3,
     0
 )
 event.source = InputDevice.SOURCE_JOYSTICK
  Timber.v("new thumb event send %s", event.toString())
 instrumentation.sendPointerSync(event)
 event.recycle()


1 个答案:

答案 0 :(得分:1)

好吧,我认为您至少需要添加一些代码来证明您对这个特定文档确实不感兴趣。否则-当文档上下文关闭时,您什么也不放-跳过该文档。

但是,如果您知道刚刚阅读了一个文档,该文档告诉您应该跳过下一个文档,并且您感到冒险,则可以执行以下操作:

@Test
public void testSkip() {
    final SingleChronicleQueue q = SingleChronicleQueueBuilder.binary("test").build();

    final ExcerptAppender appender = q.acquireAppender();
    appender.writeText("Hello");
    appender.writeText("Cruel");
    appender.writeText("World");

    final ExcerptTailer tailer = q.createTailer().toStart();

    boolean skip = false;
    while (true) {
        if (skip)
            tailer.moveToIndex(tailer.index() + 1);
        final String text = tailer.readText();
        if (text == null)
            break;
        System.err.println(text);
        skip = text.equals("Hello");
    }
}