我想通过打电话来加速我们的代码 session.executeAsync()
而不是 session.execute()
对于db写入。
我们有db连接可能中断的用例,目前是前一个 execute()
连接丢失时引发异常(群集中没有可访问的主机)。我们可以捕获这些异常,然后重试或将数据保存到其他地方等等。。。
与 executeAsync()
,看起来没有任何方法来实现这个用例-返回的 ResultSetFuture
需要访问对象来检查结果,这将破坏使用 executeAsync()
首先。。。
有没有办法在任何地方为executeasync()调用添加一个侦听器(或类似的东西),该调用将异步通知其他一些代码db write失败?
这有关系吗?datastax 1.0.2 java 1.7.40
2条答案
按热度按时间envsm3lx1#
你可以试试这样的
ResultSetFuture
工具ListenableFuture
来自guava图书馆:此方法不会阻止您的应用程序。
qltillow2#
您可以将回调传递给该方法以对异常执行操作。如果你需要
ResultSetFuture
,您可以尝试以下操作:那就这样称呼吧:
如果您需要知道异常是什么,也可以添加一个异常参数: