2011-03-15 01:00:02 +01:00
|
|
|
package akka.ticket
|
|
|
|
|
|
|
|
|
|
import akka.actor._
|
2011-09-28 14:08:04 +02:00
|
|
|
import akka.actor.Actor._
|
2011-03-15 01:00:02 +01:00
|
|
|
import akka.routing._
|
|
|
|
|
import org.scalatest.WordSpec
|
|
|
|
|
import org.scalatest.matchers.MustMatchers
|
|
|
|
|
|
|
|
|
|
class Ticket703Spec extends WordSpec with MustMatchers {
|
|
|
|
|
|
2011-06-13 13:43:21 +02:00
|
|
|
"A ? call to an actor pool" should {
|
2011-03-15 01:00:02 +01:00
|
|
|
"reuse the proper timeout" in {
|
2011-05-18 17:25:30 +02:00
|
|
|
val actorPool = actorOf(
|
2011-08-26 17:25:18 +02:00
|
|
|
Props(new Actor with DefaultActorPool with BoundedCapacityStrategy with MailboxPressureCapacitor with SmallestMailboxSelector with BasicNoBackoffFilter {
|
2011-05-18 17:25:30 +02:00
|
|
|
def lowerBound = 2
|
|
|
|
|
def upperBound = 20
|
|
|
|
|
def rampupRate = 0.1
|
|
|
|
|
def partialFill = true
|
|
|
|
|
def selectionCount = 1
|
|
|
|
|
def receive = _route
|
|
|
|
|
def pressureThreshold = 1
|
2011-10-07 11:20:49 +02:00
|
|
|
def instance(p: Props) = actorOf(p.withCreator(new Actor {
|
2011-05-18 17:25:30 +02:00
|
|
|
def receive = {
|
|
|
|
|
case req: String ⇒
|
|
|
|
|
Thread.sleep(6000L)
|
2011-09-19 11:22:27 +02:00
|
|
|
tryReply("Response")
|
2011-05-18 17:25:30 +02:00
|
|
|
}
|
2011-10-07 11:20:49 +02:00
|
|
|
}))
|
2011-09-28 14:08:04 +02:00
|
|
|
}).withFaultHandler(OneForOneStrategy(List(classOf[Exception]), 5, 1000)))
|
2011-09-27 18:00:26 +02:00
|
|
|
(actorPool.?("Ping", 10000)).await.result must be === Some("Response")
|
2011-03-15 01:00:02 +01:00
|
|
|
}
|
|
|
|
|
}
|
2011-06-14 00:19:54 +02:00
|
|
|
}
|