aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/test/PingPong.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/test/PingPong.scala')
-rw-r--r--kamon-core/src/main/scala/test/PingPong.scala50
1 files changed, 38 insertions, 12 deletions
diff --git a/kamon-core/src/main/scala/test/PingPong.scala b/kamon-core/src/main/scala/test/PingPong.scala
index 6ed17ec6..b78f1d79 100644
--- a/kamon-core/src/main/scala/test/PingPong.scala
+++ b/kamon-core/src/main/scala/test/PingPong.scala
@@ -1,37 +1,63 @@
package test
import akka.actor.{Deploy, Props, Actor, ActorSystem}
+import java.util.concurrent.atomic.AtomicLong
+import kamon.Tracer
+import spray.routing.SimpleRoutingApp
object PingPong extends App {
+ import scala.concurrent.duration._
+ val counter = new AtomicLong
val as = ActorSystem("ping-pong")
+ import as.dispatcher
- val pinger = as.actorOf(Props[Pinger])
- val ponger = as.actorOf(Props[Ponger])
+ Tracer.start
- pinger.tell(Pong, ponger)
-
-
- Thread.sleep(30000)
- as.shutdown()
+ for(i <- 1 to 64) {
+ val pinger = as.actorOf(Props[Pinger])
+ val ponger = as.actorOf(Props[Ponger])
+ for(_ <- 1 to 256) {
+ pinger.tell(Pong, ponger)
+ }
+ }
+ as.scheduler.schedule(1 second, 1 second) {
+ println("Processed: " + counter.getAndSet(0))
+ }
}
case object Ping
case object Pong
class Pinger extends Actor {
- val ponger = context.actorOf(Props[Ponger], "ponger#")
- val ponger2 = context.actorOf(Props[Ponger], "ponger#")
-
def receive = {
- case Pong => ponger ! Ping
+ case Pong => {
+ sender ! Ping
+ PingPong.counter.incrementAndGet()
+ }
}
}
class Ponger extends Actor {
def receive = {
- case Ping => sender ! Pong
+ case Ping => {
+ sender ! Pong; PingPong.counter.incrementAndGet()
+ }
}
}
+
+
+object SimpleRequestProcessor extends App with SimpleRoutingApp {
+ implicit val system = ActorSystem("test")
+
+ startServer(interface = "localhost", port = 9090) {
+ get {
+ path("test"){
+ complete("OK")
+ }
+ }
+ }
+
+}