I am working with Akka classic, and have to setup timed behaviors – in Akka typed, I could do this using Behaviors.withTimers
how do I accomplish this in Akka classic? It seems like we can create an actor in Akka using
JavaScript
x
public static Props props() {
return Props.create(actor.class, () -> new actor());
}
How do I use timers in this kind of initialization?
Advertisement
Answer
See the docs on Timers: https://doc.akka.io/docs/akka/current/actors.html#timers-scheduled-messages
In short, mixin the Timers trait. Then you can use timers
to access the API. You’ll receive messages in response to the timers firing.
JavaScript
class MyActor extends Actor with Timers {
import MyActor._
timers.startSingleTimer(TickKey, FirstTick, 500.millis)
def receive = {
case FirstTick =>
// do something useful here
timers.startTimerWithFixedDelay(TickKey, Tick, 1.second)
case Tick =>
// do something useful here
}
}