首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Chronicle在关闭后会保留文件一秒钟?

为什么Chronicle在关闭后会保留文件一秒钟?
EN

Stack Overflow用户
提问于 2019-11-06 23:15:51
回答 1查看 136关注 0票数 2

我尝试使用TempDir注释运行一些编年史队列junit测试,但是测试失败了,因为编年史队列在junit清理临时目录之前没有释放文件,这会导致测试失败。

我的临时解决方案是在测试结束之前只使用Thread.sleep(1000),但我不希望这样做。这似乎也只是windows上的一个问题。

代码语言:javascript
复制
    @TempDir
    File temporaryDir;

    @Test
    public void testCQ() throws Exception {
        ChronicleQueue cq = ChronicleQueue.singleBuilder(temporaryDir.getPath())
                .wireType(WireType.BINARY_LIGHT)
                .blockSize(128)
                .bufferCapacity(128L)
                .build();

        try(final DocumentContext dc = cq.acquireAppender().writingDocument()) {
            final Wire wire = dc.wire();
            wire.write("test").text("test");
        }

        cq.close();
        Thread.sleep(1000)
    }

"java.io.IOException:删除临时目录失败。无法删除以下路径(有关详细信息,请参阅禁止的异常):,20191106.cq4,metadata.cq4t“

“该进程无法访问该文件,因为另一个进程正在使用该文件。”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-13 18:58:45

这是因为我们在单独的线程中清理资源。我认为这不应该花太长时间--我建议你试着做几个Thread.yield(),以提示清理线程是时候做一些工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58733295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档