我正在尝试对使用来自 Disruptor 环形缓冲区的消息的应用程序进行单元测试。在测试中我想
有没有一种简单的方法可以让我等待消息被消耗(上面的步骤 3)?
我最终用一个循环解决了这个问题,当
RingBuffer.remainingCapacity()
等于 Disruptor.getBufferSize()
时完成
private void awaitRingBuffer() {
RingBuffer<MyEvent> ringBuffer = disruptor.getRingBuffer();
while (ringBuffer.remainingCapacity() != disruptor.getBufferSize()) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}