2015-03-21 3 views
1

Я инстанцирование актера в пьесе 2.1.5 приложения с помощьюAkka актер конфигурация экстернализующего развертывания

lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor], name = "background-processor") 

У меня есть файл свойства, который определяет следующую конфигурацию

application { 
    akka { 
    actor { 
     default-dispatcher = { 
     fork-join-executor { 
      parallelism-factor = 1.0 
     } 
     } 

     background-dispatcher = { 
     fork-join-executor { 
      parallelism-factor = 1.0 
     } 
     } 

     deployment = { 
     /background-processor = { 
      dispatcher = background-dispatcher 
      router = round-robin 
      nr-of-instances = 128 
     } 

     /solr_asset_updater = { 
      dispatcher = default-dispatcher 
     } 

     /solr_asset_log_updater = { 
      dispatcher = default-dispatcher 
     } 

     /change_queue_processor = { 
      dispatcher = default-dispatcher 
     } 
     } 
    } 
    } 
} 

Я потратил некоторое время на чтение документы и исходный код для игры. Однако настройки развертывания для background-processor конкретно router = round-robin и nr-of-instances = 128, похоже, не воспринимаются.

Нужно указать

lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor].withRouter(FromConfig()), name = "background-processor") 

, который мне кажется излишним. Что мне не хватает?

ответ

1

В ответ на вопрос

Нужно указать (FromConfig)

lazy val ref = Akka.system.actorOf(Props[BackgroundProcessorActor].withRouter(FromConfig()), name = "background-processor") 

Ответ от Документов в AKKA

Решение о том, чтобы создать с другой стороны, маршрутизатор должен быть принят внутри кода, т. е. вы не можете сделать что-то маршрутизатором по внешней конфигурации a (подробнее см. ниже).

В действительности требует использования withRouter и спецификации опции маршрутизатора либо в коде или из конфигурации с помощью FromConfig

1

Актерская система в плагине Акка Play имеет имя application, но использует конфигурацию верхнего уровня (а не подконфигурацию). Вы можете легко проверить это, установив уровень журнала.

akka { 
    loglevel = "DEBUG" 

    actor { 
    ... 
    } 
} 
+0

Вы правильны, однако решения, которые не решить проблему, так как FromConfig является обязательный. Вы повели меня в правильном направлении – Bhaskar

+0

Хорошо, но остальное (диспетчер, например) должно работать автоматически. –

Смежные вопросы