|
Akka/Scala example source code file (TimerBasedThrottlerTest.java)
The TimerBasedThrottlerTest.java Akka example source code
/**
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
*/
package akka.contrib.throttle;
import org.junit.ClassRule;
import org.junit.Test;
import java.util.concurrent.TimeUnit;
import scala.concurrent.duration.Duration;
import com.typesafe.config.ConfigFactory;
import akka.actor.Actor;
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.contrib.throttle.TimerBasedThrottler;
import akka.testkit.AkkaJUnitActorSystemResource;
public class TimerBasedThrottlerTest {
@ClassRule
public static AkkaJUnitActorSystemResource actorSystemResource = new AkkaJUnitActorSystemResource(
"TimerBasedThrottlerTest", ConfigFactory.parseString("akka.log-dead-letters=off"));
private final ActorSystem system = actorSystemResource.getSystem();
@Test
public void demonstrateUsage() {
//#demo-code
// A simple actor that prints whatever it receives
ActorRef printer = system.actorOf(Props.create(Printer.class));
// The throttler for this example, setting the rate
ActorRef throttler = system.actorOf(Props.create(TimerBasedThrottler.class,
new Throttler.Rate(3, Duration.create(1, TimeUnit.SECONDS))));
// Set the target
throttler.tell(new Throttler.SetTarget(printer), null);
// These three messages will be sent to the target immediately
throttler.tell("1", null);
throttler.tell("2", null);
throttler.tell("3", null);
// These two will wait until a second has passed
throttler.tell("4", null);
throttler.tell("5", null);
//#demo-code
}
static//#demo-code
//A simple actor that prints whatever it receives
public class Printer extends UntypedActor {
@Override
public void onReceive(Object msg) {
System.out.println(msg);
}
}
//#demo-code
static class System {
static Out out = new Out();
static class Out {
void println(Object s) {
}
}
}
}
Other Akka source code examplesHere is a short list of links related to this Akka TimerBasedThrottlerTest.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.