# Blatt 04 - Timed Messages In diesem Blatt ging es allen voran, um die möglichkeit Zeitgesteuert Nachrichten zu senden. Möglich macht es der `TimerScheduler`. Damit ein Aktor zugriff auf einen `TimerScheduler` hat, muss der Aktor damit erstellt werden. Anstelle dem _regulärem_ ```java public static Behavior create(... arguments ...) { return Behaviors.setup(context -> new Actor(context, ... arguments ...)); } ``` muss ein Aktor nun mit `Timers` erstellt werden. ```java public static Behavior create(... arguments ...) { return Behaviors.setup(context -> Behaviors.withTimers(timers -> new Actor(context, timers, ... arguments ...))); } ``` Entsprechend muss im Konstruktor dann auch an der entsprechenden Stelle ein `TimerScheduler` erwartet werden. ```java private Actor(ActorContext context, TimerScheduler timers, ... arguments ...) { super(context); this.timers = timers; // wir speichern uns einfach den TimerScheduler // restliche argumente setzen } ``` Nun kann der `TimerScheduler` genutzt werden. Grundsätzlich wird mit dem `TimerScheduler` eine Nachricht nach einer bestimmten Zeit **an sich selbst** gesendet. Diese muss (wie jede Nachricht) dann auch behandelt werden. Der Code ```java this.timers.startSingleTimer(new Message(), Duration.ofSeconds(10)); ``` sendet eine Nachricht (`Message`) nach 10 Sekunden an sich selbst. `TimerScheduler` können noch mehr, aber das ist erstmal alles, was zum Verständnis der Aufgabe gebraucht wird.