Skip to content

Instantly share code, notes, and snippets.

@rkuhn
Created February 16, 2012 11:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rkuhn/1844153 to your computer and use it in GitHub Desktop.
Save rkuhn/1844153 to your computer and use it in GitHub Desktop.
Futures and Resizers
import akka.dispatch.Future
import akka.pattern.pipe
import akka.actor.Actor
case class Work(s: String)
case class Result(s: String)
object MyActor {
// put here to avoid closing over actor’s state
def doWork(work: String): String = {
// this takes very long
"hello " + work
}
}
class MyActor extends Actor {
import context.dispatcher
def receive = {
case Work(w) =>
Future { Result(MyActor.doWork(w)) } pipeTo sender
}
}
import akka.actor.{ Props, ActorSystem }
import akka.routing.{ RoundRobinRouter, DefaultResizer }
object Demo {
val system = ActorSystem()
val flexibleRouter = system.actorOf(Props.empty.withRouter(
RoundRobinRouter(resizer = Some(DefaultResizer(
lowerBound = 1, upperBound = 10)))))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment