Christoph Stahl 6b021f335c | ||
---|---|---|
src/main | ||
README.md | ||
build.gradle |
README.md
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
public static Behavior<Message> create(... arguments ...) {
return Behaviors.setup(context -> new Actor(context, ... arguments ...));
}
muss ein Aktor nun mit Timers
erstellt werden.
public static Behavior<Message> 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.
private Actor(ActorContext<Message> context, TimerScheduler<Message> 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
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.