Я использую AKKA Actors (версия 2.3.9) с использованием Scala API.
У меня есть куча разнородных Актеров, которые должны срабатывать каждые 30 минут. Я вижу, что за один прогон не все актеры срабатывают. Это совершенно случайно. Каждый актер не выполняет, так сказать, никаких тяжелых задач. Они совершают много операций чтения в хранилище NoSQL и несколько операций записи. Не уверен, в чем здесь настоящая проблема. Я чувствую, что где-то я не использую идеальный подход.
Это код:
val system = ActorSystem("pumpkinx-akka")
import system.dispatcher
val noOfActors = 50
val allActors = List(
system.actorOf(Props[a.actors.TriggerActor].withRouter(new RoundRobinRouter(noOfActors)), "aTriggerActor"),
system.actorOf(Props[b.actors.TriggerActor].withRouter(new RoundRobinRouter(noOfActors)), "bTriggerActor"),
system.actorOf(Props[c.actors.TriggerActor].withRouter(new RoundRobinRouter(noOfActors)), "cTriggerActor"),
system.actorOf(Props[d.actors.TriggerActor].withRouter(new RoundRobinRouter(noOfActors)), "dTriggerActor"),
system.actorOf(Props[e.actors.TriggerActor].withRouter(new RoundRobinRouter(noOfActors)), "eTriggerActor"))
def trigger = allActors.foreach(_ ! new Start)
system.scheduler.schedule(0 seconds, 30 minutes)(trigger)
system.awaitTermination()