I have this funny problem and I am unable to identify the issue.
I have this "simple" akka application. It's main goal is to go over every document in a database. My main actor requests rows to a single actor that communicates with the database. Each document retrieved is returned to my main actor. By batches, these documents are added to a message queue managed by a balancing dispatcher. Small workers will go over them and sort them.
After a few hours, usually between 2 and 4, all actors stop at the same time, up to 5 seconds interval.
I was wondering if any of you had every seen something similar.
For information:
- I use AkkA 2.2.0
- No ask messages are used, only tell
- I do not use any thread locking methods like Await
- DeadLetters are the reason I know that everything just shuts down
Thank you for your help
From the DeadLetters it seems that only the actors related to my balancing dispatcher / my round robin router just stop. Would there be something I missed ?
My scala
val workers: ActorRef = context.system.actorOf(
Props(new WorkerActor)
.withRouter(FromConfig())
.withDispatcher("balancing-dispatcher"),
"round-robin"
)
My configuration code
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
}
}
}