Vytvořil bych driver
a connection
v hlavní herec. Potom bych nastavil pracovní aktéry, aby vzali instanci MongoConnection
jako argument konstruktoru, takže každý pracovník má odkaz na připojení (což je ve skutečnosti proxy k fondu připojení). Potom v něčem jako preStart
, požádejte hlavního aktéra, aby vytvořil pracovníky (o kterých předpokládám, že jsou směrovány) a dodejte spojení jako arg. Velmi zjednodušený příklad by mohl vypadat takto:
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 = {
...
}
}
Tento kód není přesný, ale alespoň ukazuje koncepty vysoké úrovně, které jsem popsal.