2018-10-29 17:19:37 +08:00
|
|
|
/*
|
2019-01-02 18:55:26 +08:00
|
|
|
* Copyright (C) 2009-2019 Lightbend Inc. <https://www.lightbend.com>
|
2018-03-13 23:45:55 +09:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package jdocs.pattern;
|
|
|
|
|
|
|
|
|
|
import akka.actor.*;
|
|
|
|
|
import akka.pattern.Backoff;
|
|
|
|
|
import akka.pattern.BackoffSupervisor;
|
|
|
|
|
import akka.testkit.TestActors.EchoActor;
|
2019-01-12 04:00:53 +08:00
|
|
|
// #backoff-imports
|
2018-04-11 16:47:36 +02:00
|
|
|
import java.time.Duration;
|
2019-01-12 04:00:53 +08:00
|
|
|
// #backoff-imports
|
2018-03-13 23:45:55 +09:00
|
|
|
|
|
|
|
|
public class BackoffSupervisorDocTest {
|
|
|
|
|
|
2019-01-12 04:00:53 +08:00
|
|
|
void exampleStop(ActorSystem system) {
|
|
|
|
|
// #backoff-stop
|
2018-03-13 23:45:55 +09:00
|
|
|
final Props childProps = Props.create(EchoActor.class);
|
|
|
|
|
|
2019-01-12 04:00:53 +08:00
|
|
|
final Props supervisorProps =
|
|
|
|
|
BackoffSupervisor.props(
|
|
|
|
|
Backoff.onStop(
|
|
|
|
|
childProps,
|
|
|
|
|
"myEcho",
|
|
|
|
|
Duration.ofSeconds(3),
|
|
|
|
|
Duration.ofSeconds(30),
|
|
|
|
|
0.2)); // adds 20% "noise" to vary the intervals slightly
|
2018-03-13 23:45:55 +09:00
|
|
|
|
|
|
|
|
system.actorOf(supervisorProps, "echoSupervisor");
|
2019-01-12 04:00:53 +08:00
|
|
|
// #backoff-stop
|
2018-03-13 23:45:55 +09:00
|
|
|
}
|
|
|
|
|
|
2019-01-12 04:00:53 +08:00
|
|
|
void exampleFailure(ActorSystem system) {
|
|
|
|
|
// #backoff-fail
|
2018-03-13 23:45:55 +09:00
|
|
|
final Props childProps = Props.create(EchoActor.class);
|
|
|
|
|
|
2019-01-12 04:00:53 +08:00
|
|
|
final Props supervisorProps =
|
|
|
|
|
BackoffSupervisor.props(
|
|
|
|
|
Backoff.onFailure(
|
|
|
|
|
childProps,
|
|
|
|
|
"myEcho",
|
|
|
|
|
Duration.ofSeconds(3),
|
|
|
|
|
Duration.ofSeconds(30),
|
|
|
|
|
0.2)); // adds 20% "noise" to vary the intervals slightly
|
2018-03-13 23:45:55 +09:00
|
|
|
|
|
|
|
|
system.actorOf(supervisorProps, "echoSupervisor");
|
2019-01-12 04:00:53 +08:00
|
|
|
// #backoff-fail
|
2018-03-13 23:45:55 +09:00
|
|
|
}
|
|
|
|
|
}
|