如何写一个等待事件的未来

时间:2013-02-13 01:15:02

标签: multithreading events scala rpc future

我有一个客户端/服务器套接字,可以执行一些rpc操作。我对finagle有点了解,我发现与Future的隔离非常优雅。所以我的问题是如何在scala中编写一个等待事件的Future(我的客户端请求的服务器回复)。实施可能会使用已确定的请求,但我缺少的是要求未来在没有繁忙等待的情况下等待事件的方式。

2 个答案:

答案 0 :(得分:2)

创建Promise而不是Future,并为您的事件添加一个符合承诺的侦听器。将承诺的未来归还给您的客户(在Twitter Util未来库中它是承诺本身,在Scala 2.10中它是p.future)。

答案 1 :(得分:0)

为此,您需要查看Akka Actors

以下是演员的例子

class MyActor extends Actor {
   val log = Logging(context.system, this)
   def receive = {
      case "test" ⇒ log.info("received test")
      case _      ⇒ log.info("received unknown message")
   }
}