MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Akka e Reactive Mongo

Creerei il driver e connection nel maestro attore. Vorrei quindi impostare gli attori worker per prendere un'istanza di MongoConnection come argomento del costruttore in modo che ogni lavoratore abbia un riferimento alla connessione (che è in realtà un proxy per un pool di connessioni). Quindi, in qualcosa come preStart , chiedi all'attore principale di creare i worker (che suppongo siano instradati) e fornire la connessione come arg. Un esempio molto semplificato potrebbe essere questo:

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 = {
    ...
  }
}

Questo codice non è esatto, ma almeno mostra i concetti di alto livello che ho descritto.