当要写入的消息数量很多时,在一段时间后得到IllegalStateException
。这是代码:
chronicle = ChronicleQueueBuilder.indexed(basePrefix).build();
循环开始
{
appender = chronicle.createAppender();
appender.startExcerpt();
appender.writeObject(message);
appender.finish();
}
循环结束
chronicle.close();
Java编年史3.6.2是Java 1.7的版本。
最佳答案
索引纪事报中此错误的最常见原因是它是单线程编写器。您需要确保只有一个线程对此进行写入,如果需要,可以使用锁定。
您应该只能创建一个Appender,并锁定该对象或队列本身(如果您使用多个线程)
Chronicle Queue v4 +没有此限制,并且支持每个周期每个文件只有一个文件的任意数量的线程。
关于java - Java纪事在大量消息上抛出IllegalStateExecption,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38415008/