在Akka Classic中,使用ActorSystem.scheduler来设置定时器。我们可以使用以下代码来演示如何使用它:
import akka.actor.{Actor, ActorSystem}
import scala.concurrent.duration._
class MyActor extends Actor {
context.system.scheduler.scheduleOnce(10.seconds, self, "tick")
def receive: PartialFunction[Any, Unit] = {
case "tick" =>
// do something
}
}
object MyApp extends App {
val system = ActorSystem("my-system")
val myActor = system.actorOf(Props[MyActor], "my-actor")
}
在上面的示例中,我们使用ActorSystem.scheduler.scheduleOnce
来设置10秒后发送“tick”消息。如果我们想设置一个重复的定时器,我们可以使用ActorSystem.scheduler.scheduleWithFixedDelay
。例如:
context.system.scheduler.scheduleWithFixedDelay(5.seconds, 10.seconds, self, "tick")
这会在第5秒后开始,之后每隔10秒发送一个“tick”消息。
希望可以帮助你理解和实现Akka classic中的定时行为。