使用Phantom在Cassandra集群上建立连接超时

时间:2015-12-18 15:46:37

标签: scala cassandra phantom-dsl

我正在使用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驱动程序,然而可能有一些我不知道的幻像,并且它已经为此目标做了。

0 个答案:

没有答案