我希望我的一个Akka演员执行长时间运行的阻塞任务(在一个很长的字符串中查找子字符串,作为示例).演员的哲学(不阻挡其他演员等)后我该如何做?
我正在考虑在一个单独的线程中运行这个actor PinnedDispatcher,但我不确定.
小智 5
您可以在将来包装任务,并使用该pipe模式将结果发送给另一个Actor .另一个演员将收到结果值或akka.actor.Status.Failure持有原因.
如果您想回复发件人,那将是:
import akka.pattern.pipe
def receive: Receive = {
case msg =>
val future: Future[String] = Future(longRunningBlockingTask(msg))
future pipeTo sender
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1353 次 |
| 最近记录: |