我正在使用 phantom-dsl 并成功地使用CassandraTable
类在集群上实现了读/写操作。
但是,如果 while 集群关闭或配置错误,我希望快速失败:停止我的 CLI 并退出程序,实际上是在尝试编写某些内容之前。
什么是实现这一目标的好方法?到目前为止,我已经尝试过:
object Config {
val keySpace = KeySpace("myreallyfirstks")
val contactPoint: KeySpaceBuilder = ContactPoint(host = "localhost", port = ContactPoint.DefaultPorts.live)
val keySpaceDefinition: KeySpaceDef = contactPoint.keySpace(keySpace.name)
lazy val session: Session = keySpaceDefinition.provider.getSession(keySpace.name)
trait StandardConnector extends keySpaceDefinition.Connector
}
进而
val test = Try(Config.session.executeAsync("select * from system.schema_columns limit 1;").get(1, TimeUnit.SECONDS))
Try(test) match {
case Success(_) => println("Someone is alive")
case Failure(ex) => println(s"The cluster is down")
}
但是,即使我指向未安装 C* 的地址,这也会使我成功。
使用Session
跳过完全幻象直接进入 Java 驱动程序,但是幻象中可能有一些我不知道的东西,它已经为这个目标完成了。