gpt4 book ai didi

java - 无法测试 Cassandra executeAsync 响应

转载 作者:行者123 更新时间:2023-12-02 01:54:56 24 4
gpt4 key购买 nike

这是我的原始方法示例

public void insertIntoDb(SampleObject sample){
---------------------------------------
---------------------------------------
code to prepare Insert statement
---------------------------------------
---------------------------------------
session.executeAsync(insertStatement);
}

我正在为上述方法编写一个测试方法

public void insertIntoDbTest(){
--------------------------------------
---------------------------------------
preparing SampleObject and checking the size of the corresponding table before insert
---------------------------------------
---------------------------------------
obj.insertIntoDb(sampleObject)

---------------------------------------
checking the size of the corresponding table after insert
---------------------------------------
}

期望:执行上述测试方法后,应在 cassandra 中的表中添加 1 行额外的行,即如果在插入表大小之前:0,则在插入之后表大小:1

实际:我得到相同的大小,即之前和之后的表格大小仅为 0。

如果我更换

session.executeAsync(insertStatement);

ResultSetFuture future = session.executeAsync(insertStatement);

然后添加以下语句

future.get()

然后我得到了表格大小的差异,即 1

最佳答案

当您第一次尝试验证表大小时,我怀疑计算(插入)尚未完成。

如果需要,ResultSetFuture get() 方法会等待计算完成,然后检索其结果。

executeAsync 方法不会等待。

一旦查询被传递到底层网络堆栈,它就会返回。特别是,从此方法返回并不能保证查询有效,甚至不能保证查询已提交到 Activity 节点。访问 ResultSetFuture 时,任何与查询失败相关的异常都会被抛出。来源:https://docs.datastax.com/en/drivers/java/2.1/com/datastax/driver/core/ResultSetFuture.html

关于java - 无法测试 Cassandra executeAsync 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52438574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com