
akka
tydhot
gogogo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
akka一些邮箱的实现
private[akka] abstract class Mailbox(val messageQueue: MessageQueue) extends SystemMessageQueue with Runnable Mailbox的实现主要还是依靠各种消息队列来实现各种要求。 def enqueue(receiver: ActorRef, msg: Envelope): Unit ...原创 2019-05-28 01:43:51 · 531 阅读 · 0 评论 -
akka balance router的实现
当akka处于balance策略的时候,Akka的父actor在选择相应的子actor去执行相应的消息时,不会直接直接选择,而是在分发器dispatch中,通过共享邮箱的方式,选择一个空闲的子actor去执行这个消息。 具体的balance策略BalanceRoutingLogic的apply方法只是返回了所有子actor的第一个,并没有执行具体的选择操作。 private[akka]...原创 2019-06-06 00:20:11 · 378 阅读 · 0 评论 -
akka actor父子监管的实现
akka中,父actor可以定义supervisorStartegy来实现对子actor的异常监管应对策略。 * override val supervisorStrategy = OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1 minute) { * case _: ArithmeticException ...原创 2019-06-02 11:41:40 · 748 阅读 · 0 评论 -
akka actor行为切换实现
Akka中actor行为的切换实际是actor的receive的函数的选择切换。 通过become()方式切换行为。 在ActorCell中维护着一个可伸缩List实现的行为堆栈。 private var behaviorStack: List[Actor.Receive] = emptyBehaviorStack 在actor接受到消息的时候,将会调用堆栈顶部的函数。 fin...原创 2019-06-04 23:33:31 · 513 阅读 · 0 评论