私は 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 ドライバーに直接送信されますが、ファントムには私が知らない何かがある可能性があり、この目的のために既に実行されています。