3

我是演员模型的新手,我想知道应该如何处理运行时错误。

假设actor捕获了异常,那么它应该怎么做呢?

我绝对希望将任何错误通知发件人,因此,至少发件人可以记录错误。

所有响应消息都应该包含status字段还是应该为我的应用程序中的每个响应消息都存在XXXErrorMessage类?

演员模型中错误处理的最佳实践是什么?

4

1 回答 1

2

你应该在谷歌上搜索“erlang supervisor design”,因为 Actor 模型主要是用 erlang 铺设的。然后,您可以将所描述的知识应用到 Akka 演员(正在成为 Scala 2.10 中的标准演员库)。另请阅读上述关于监督容错的评论 akka 文档。

或者,您可以选择不使用 Actors,而是使用Future更容易组合的 s。然后您将拥有Future[Either[E, A]]类型,您可以使用scalaz + akkazEitherT[Future, E, A]将其视为组合的monad 类型,并将其用于例如理解。

如果我预计会有很多失败,我会选择 Actors,需要重新启动和重试,必须封装可变状态等。如果你不需要这些,你可以回退到Futures 并有一个更好的睡眠。

于 2012-09-11T15:13:09.213 回答