2

カスタムapplication.confの作成方法に関するチュートリアルを何日も探しています。akka-documentationを読み、Piの例を試しました。

しかし今、私は自分の構成を実行したいと思います。私の目標は、ルーターの種類を上書きして、ルートの数を変更することです。これが私のコードです:

package org.sddb.playground

import akka.actor._
import com.typesafe.config.ConfigFactory
import akka.routing.RoundRobinRouter

object Test extends App {

  case object Log
  case object Ask

  class Tester extends Actor with ActorLogging {

    def receive = {
      case Log => logging
      case Ask => answer
    }

    def logging {
      log error "error"
      log warning "warning"
      log debug "debug"
    }

    def answer {
      log info "somebody asked"
    }
  }
  val config = ConfigFactory.load
  val system = ActorSystem("TestSystem", config.getConfig("test"))
  val tester = system.actorOf(Props[Tester].withRouter(RoundRobinRouter(2)))
  tester ! Log
  tester ! Ask
  tester ! PoisonPill
  system.shutdown
}

私のapplication.configはそのように見えます:

test {
  akka.loglevel = DEBUG
  deployment {
    /tester {
      router = broadcast
      nr-of-instances = 5
    }
  }
}

デバッグレベルでのログオンは問題ありませんが、ブロードキャストも5つのインスタンスもありません。私の間違いはどこにありますか?

4

1 に答える 1

5

これは、RoundRobinRouter(2)を明示的に作成しているためです。代わりに合格FromConfig()する必要があり、名前として「テスター」も合格する必要があります。

編集:

構成セクションが間違っています。次のようになります。

test {
  akka.loglevel = DEBUG
  akka.actor.deployment {
    /tester {
      router = broadcast
      nr-of-instances = 5
    }
  }
}

しかし、あなたはただすることもできます

akka {
  loglevel = DEBUG
  actor {
    deployment {
      /tester {
        router = broadcast
        nr-of-instances = 5
      }
    }
  }
}

その後、構成を手動で渡す必要はありません。

于 2012-05-04T09:58:28.497 に答える