2017-06-16 11:31:00 +02:00
|
|
|
/**
|
2018-01-04 17:26:29 +00:00
|
|
|
* Copyright (C) 2017-2018 Lightbend Inc. <https://www.lightbend.com>
|
2017-06-16 11:31:00 +02:00
|
|
|
*/
|
|
|
|
|
package docs.actor
|
|
|
|
|
|
|
|
|
|
object TimerDocSpec {
|
|
|
|
|
//#timers
|
2017-11-17 09:07:37 +01:00
|
|
|
import scala.concurrent.duration._
|
|
|
|
|
|
|
|
|
|
import akka.actor.Actor
|
2017-06-16 11:31:00 +02:00
|
|
|
import akka.actor.Timers
|
|
|
|
|
|
|
|
|
|
object MyActor {
|
|
|
|
|
private case object TickKey
|
|
|
|
|
private case object FirstTick
|
|
|
|
|
private case object Tick
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class MyActor extends Actor with Timers {
|
|
|
|
|
import MyActor._
|
|
|
|
|
timers.startSingleTimer(TickKey, FirstTick, 500.millis)
|
|
|
|
|
|
|
|
|
|
def receive = {
|
2017-10-06 10:30:28 +02:00
|
|
|
case FirstTick ⇒
|
2017-06-16 11:31:00 +02:00
|
|
|
// do something useful here
|
|
|
|
|
timers.startPeriodicTimer(TickKey, Tick, 1.second)
|
2017-10-06 10:30:28 +02:00
|
|
|
case Tick ⇒
|
2017-06-16 11:31:00 +02:00
|
|
|
// do something useful here
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//#timers
|
|
|
|
|
}
|