我使用Play Framework 2.1.1与外部java库产生java.util.concurrent.Future结果。我正在使用Scala未来版本,而不是Akka,我认为这是Play 2.1的正确选择。如何将java.util.concurrent.Future包装到scala.concurrent.Future中,同时仍然保持代码不被阻塞?scala.concurrent.Future封装java.util.concurrent.Future
def geConnection() : Connection = {
// blocking with get
connectionPool.getConnectionAsync().get(30000, TimeUnit.MILLISECONDS)
}
上面的代码返回一个连接,而是使用GET,使其成为阻挡
def getConnectionFuture() : Future[Connection] = {
future {
// how to remove blocking get and return a scala future?
connectionPool.getConnectionAsync().get(30000, TimeUnit.MILLISECONDS)
}
}
理想我想返回上面,但没有代码阻止类似的代码连接作为未来Scala的功能通过get。我还需要将其放入函数中以使其不被阻塞。
任何指针都会很棒。
您正在使用哪个斯卡拉的版本转换?截至2.10.x,Scala采用了Akka的Future作为自己的未来。 –
Play 2.1.1使用Scala 2.10.0下盖 –