簡體   English   中英

如何編輯Akka application.conf

[英]how to edit akka application.conf

我正在尋找有關如何編寫自定義application.conf的教程的日子。 我閱讀了akka文檔,並嘗試了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個實例。 我的錯在哪里?

那是因為您正在顯式創建RoundRobinRouter(2)。 您必須改為傳遞FromConfig()並且還必須傳遞“ tester”作為名稱。

編輯:

您的配置部分錯誤,應該是:

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
      }
    }
  }
}

那么您不必手動傳遞配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM