实施以下示例的最佳方法是什么?
Actor server
收到Requests
,
处理它们,创建一个新的Response
对于每个Request
并发送Response
后退
到Request
sender.
Actor client
sends Requests
和
收到Responses
.
所有这些通信都是异步的,因此它使用react
.
这只是一个示例,因此它不应该处理所有这些情况,例如server
已下降,client
被卡住了等等。它应该简洁且富有表现力。
import scala.actors._
import Actor._
case class SendRequest(rid: String)
case class Request(rid: String)
case class Response(rid: String)
val server = actor {
eventloop {
case Request(rid) =>
println("Server got request [%s] from client" format(rid))
sender ! Response(rid)
}
}
}
val client = actor {
eventloop {
case SendRequest(rid) => server ! Request(rid)
case Response(rid) =>
println("Client got response [%s] from server" format(rid))
}
}
}
Usage:
scala> client ! SendRequest("Hello!")
Server got request [Hello!] from client
Client got response [Hello!] from server
关于:
所有这些通信都是异步的
因此它使用react。
使用的演员receive
也是异步的。他们只是阻塞线程,等待新消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)