Last active
December 11, 2015 04:19
-
-
Save fmpwizard/4544476 to your computer and use it in GitHub Desktop.
LiftActors work pool
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| object Worker1 extends AddItem | |
| object Worker2 extends AddItem | |
| object Worker3 extends AddItem | |
| object DoneWithWork | |
| trait AddItem extends LiftActor with Loggable { | |
| override def messageHandler = { | |
| case item: InventoryItem => Inventory.addItem(item) | |
| case DoneWithWork => logger.info("I'm done with work.") | |
| } | |
| } | |
| object doTheWork { | |
| def do() = { | |
| var actorIndex = 0 | |
| def pickActor: Int = { | |
| actorIndex match { | |
| case 2 => actorIndex = 0; 0 | |
| case _ => actorIndex = actorIndex + 1; actorIndex | |
| } | |
| } | |
| val actorPool = List(Worker1, Worker2, Worker3) | |
| ... | |
| val actor = actorPool(pickActor) | |
| actor ! item //item is a case class that has a row from a csv file. | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment