Akka Unbounded Mailbox 好像是有界的
Akka Unbounded Mailbox seems to be bounded
我一定是误会了什么。文档说默认邮箱应该是无限的,但为了确保我添加了显式配置:
akka.actor.default-mailbox {
mailbox-type = "akka.dispatch.UnboundedMailbox"
}
然而,当我发出 50 条消息时,如下所示:
1 to 50 foreach { _ =>
myActorRef ! "myMessage"
}
我收到大约 15 个错误:
ActorRefSourceActor - Dropping the new element because buffer is full and overflowStrategy is: [DropNew]
这是怎么回事?
编辑:
@cmbaxter - 谢谢你是对的,我过度简化了代码,没有意识到哪一部分实际上被破坏了。缺少的信息是:
myActorRef
实际上指的是播放文档 here 中描述的 WebSocket actor 设置。正如您提到的,它使用了 ActorFlow。
- 发送到
myActorRef
的消息不是问题,但它反过来写入 WebSocket,这才是问题所在。
现在我明白了它的来源,修复是相当微不足道的。
我只是增加了通常默认为 16 的 ActorFlow 的缓冲区大小,例如:
ActorFlow.actorRef(MyActor.props(), 10000)
我一定是误会了什么。文档说默认邮箱应该是无限的,但为了确保我添加了显式配置:
akka.actor.default-mailbox {
mailbox-type = "akka.dispatch.UnboundedMailbox"
}
然而,当我发出 50 条消息时,如下所示:
1 to 50 foreach { _ =>
myActorRef ! "myMessage"
}
我收到大约 15 个错误:
ActorRefSourceActor - Dropping the new element because buffer is full and overflowStrategy is: [DropNew]
这是怎么回事?
编辑:
@cmbaxter - 谢谢你是对的,我过度简化了代码,没有意识到哪一部分实际上被破坏了。缺少的信息是:
myActorRef
实际上指的是播放文档 here 中描述的 WebSocket actor 设置。正如您提到的,它使用了 ActorFlow。- 发送到
myActorRef
的消息不是问题,但它反过来写入 WebSocket,这才是问题所在。
现在我明白了它的来源,修复是相当微不足道的。 我只是增加了通常默认为 16 的 ActorFlow 的缓冲区大小,例如:
ActorFlow.actorRef(MyActor.props(), 10000)