1
我有上演員下面的一段代碼,我問別人一個動作(堅持的東西在外部DB)Akka /期貨 - 根據成功或失敗管道不同的消息?
如果是成功:
後來我發信息給我以反映我在當地州的行動結果,然後將其返回原始sender
。
在對持久到DB一個故障的情況下:
後來我想Status.Failure
回覆(如退還給我)直接到當前的發送者。
的代碼看起來是這樣的:
case Event(SomeAction(name), _) =>
val origin = sender()
ask(someOtherActor, SomeAction(name)).mapTo[ActionResult]
.map(ActionCompleted)
.onComplete {
case Success(value) => self.tell(value, origin)
case Failure(e) => origin ! Status.Failure(e)
}
stay()
case Event(ActionCompleted(result), state) =>
stay using state.update(result) replying result
上述工程的代碼,但我需要依靠複製發送到一個局部變量,以避免關閉了它。
我想知道是否有更好的方法來做到這一點pipeTo
?