我有这个有趣的问题,我无法确定问题。
我有这个“简单”的 akka 应用程序。它的主要目标是检查数据库中的每个文档。我的主要参与者向与数据库通信的单个参与者请求行。检索到的每个文档都返回给我的主要参与者。分批将这些文档添加到由平衡调度程序管理的消息队列中。小工人会检查它们并对其进行分类。
几个小时后,通常在 2 到 4 小时之间,所有演员同时停止,最多间隔 5 秒。
我想知道你们中是否有人见过类似的东西。
有关信息:
- 我使用 AkkA 2.2.0
- 不使用询问消息,只告诉
- 我不使用任何线程锁定方法,例如 Await
- DeadLetters 是我知道一切都会关闭的原因
谢谢您的帮助
从 DeadLetters 看来,只有与我的平衡调度程序/我的循环路由器相关的演员才会停止。我会错过什么吗?
我的斯卡拉
val workers: ActorRef = context.system.actorOf(
Props(new WorkerActor)
.withRouter(FromConfig())
.withDispatcher("balancing-dispatcher"),
"round-robin"
)
我的配置代码
balancing-dispatcher {
type = BalancingDispatcher
executor = "fork-join-executor"
}
akka.actor.deployment {
/round-robin {
router = round-robin
nr-of-instances = 50
resizer {
lower-bound = 10
upper-bound = 100
}
}
}