0

Casbah を使用して Mongo にいくつかのエントリを書き込むためだけの非常に単純なデータベース ライター アクターがありますが、DB への接続後にメッセージを受信することを (エラーなしで) 拒否します。アクターから削除clientしてdbvals すると、メッセージを受け取ります。また、いくつかのオブジェクトへの接続をカプセル化しようとしましたが、DB への接続後も機能しません。

class DBWriter extends Actor with ActorLogging {
  val client = MongoClient(host, port)
  val db     = client(dbName)

  def receive = {
    case Write(collection, entry) => db(collection).save(entry)
  }
}

class StatisticsActor extends Actor with ActorLogging {
  val writer = context.actorOf(Props[DBWriter], "dbWriterActor")
  def receive = {
    case mes: SM => writer ! Write(....)
    case NoConnection => writer ! Write(....)
    case NCTime(time) => writer ! Write(....)
    ....
  }
  ....
}

どうすれば修正できますか?

4

1 に答える 1

0

問題が見つかりました。それは非常に単純で、問題はスレッドにあり、アクターは mongo に接続して書き込む時間がなかっただけで、すべてのテストはその瞬間に渡されました。

于 2013-02-07T11:59:01.327 に答える