Jeg ville oprette driver
og connection
i mesterskuespilleren. Jeg ville derefter indstille arbejdsaktørerne til at tage en instans af MongoConnection
som et konstruktørargument, så hver arbejder har en reference til forbindelsen (som egentlig er en proxy til en pulje af forbindelser). Derefter i noget som preStart
, få mesterskuespilleren til at oprette arbejderne (som jeg antager er dirigeret) og levere forbindelsen som en arg. Et meget forenklet eksempel kunne se sådan ud:
class MongoMaster extends Actor{
val driver = new MongoDriver
val connection = driver.connection(List("localhost"))
override def preStart = {
context.actorOf(Props(classOf[MongoWorker], connection).withRouter(FromConfig()))
}
def receive = {
//do whatever you need here
...
}
}
class MongoWorker(conn:MongoConnection) extends Actor{
def receive = {
...
}
}
Denne kode er ikke nøjagtig, men den viser i det mindste de begreber på højt niveau, jeg beskrev.