0

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

4

1 に答える 1