【发布时间】:2015-05-11 21:36:51
【问题描述】:
我需要通过 Spring 框架使用异步查询。我使用 Datastax 的 Cassandra 和 Java 驱动程序。如何调用 executeAsync 方法并获取结果。
【问题讨论】:
标签: spring cassandra spring-batch
我需要通过 Spring 框架使用异步查询。我使用 Datastax 的 Cassandra 和 Java 驱动程序。如何调用 executeAsync 方法并获取结果。
【问题讨论】:
标签: spring cassandra spring-batch
我想到了 3 种可能的解决方案:
executeAsync 返回有isDone 方法的ResultSetFuture,你可以有while loop with!isDoneand jump to some block when it returnstrueinisDone`ResultSetFuture 中有 addListener,因此您可以注册侦听器以在 Future 计算完成后触发注册一个监听器以在给定的执行器上运行。听者 将在 Future 的计算完成时运行,或者,如果 计算已经完成,马上。
ListenableFuture,因为 ResultSetFuture 的扩展如 this stackoverflow question 中所述我认为第三种选择是最干净的方式。
【讨论】: