Mam funkcjonalność do zrobienia czegoś przez timer wewnątrz pętli. Więc pomyślałem o użyciu programu planującego akka, aby to osiągnąć. Oto mój przykładowy kod (napisany wewnątrz aktora Akka):Jak uzyskać terminarz akka wewnątrz pętli dla aktualnego ouput
class TestActor extends Actor {
override def receive: Receive = {
case num: Int => println(num)
case Tick => loopAndPrint
}
def loopAndPrint = {
val list = List(1, 100, 5, 23)
list.map { l =>
context.system.scheduler.scheduleOnce(Duration.create(30, TimeUnit.SECONDS), self, l)
}
}
}
Spodziewałem się, że println zostanie wywołana co 30 sekund do końca listy. Zaczęło się jednak po 30 sekundach i kończyło się drukowaniem wszystkich pozycji listy na raz.
Jak mogę to osiągnąć, aby wydrukować elementy listy co 30 sekund po starcie?
Z góry dziękuję.
Używasz 'scheduleOnce' co oznacza, że każdy harmonogram będzie działać tylko ... raz. – marcospereira
I, tylko zgadnij, ale myślę, że naprawdę chcesz 'list.foreach' skonfigurować każdy program planujący. – marcospereira
@marcospereira ... Tak, chcę zaplanować go raz, a chcę mieć aktualne wyniki, foreach nie mogę tego zrobić – Jet