作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Actor 模型的新手,我想知道应该如何处理运行时错误。
假设 actor 捕捉到了异常,那么它应该做什么呢?
我绝对希望发件人收到任何错误通知,因此,至少发件人可以记录错误。
所有响应消息都应该包含status
字段还是应该为我的应用程序中的每个响应消息都存在XXXErrorMessage
类?
Actor 模型中错误处理的最佳实践是什么?
最佳答案
你应该谷歌“erlang supervisor design”,因为 Actor 模型主要是用 erlang 铺设的。然后,您可以将所描述的知识应用于 Akka actors(它正在成为 Scala 2.10 中的标准 actor 库)。另请阅读上面关于 supervision 的评论 akka 文档和 fault tolerance .
或者,您可以选择不使用 Actors,而是使用 Future
相反,它更容易编写。然后您将拥有 Future[Either[E, A]]
类型,您可以使用 scalaz 将其视为组合的 EitherT[Future, E, A]
monad 类型+ akkaz并将其用于理解等方面。
如果我预计会有很多失败,需要重新启动并重试,必须封装可变状态等,我会选择 Actors。如果你不需要这些,你可以回退到 Future
s 并睡个好觉。
关于scala - Actor 应该如何通知发件人错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369375/
我是一名优秀的程序员,十分优秀!