2015-05-08 3 views
7

Я хотел бы использовать планировщик Акки, примеры говорят:Как ссылаться на стандартную систему действий в игровой системе 2?

system.scheduler.scheduleOnce() 

но нет никакой реальной информации, где «система» должна исходить от. Документация немного поверхностна, и было много изменений (акка вышла из основной scala).

Если я пишу

val system = akka.actor.ActorSystem("system") 

у меня будет ActorSystem, но это будет новый независимый ActorSystem с около 8 новых потоков. Я думаю, что это слишком много для небольшого планировщика и не рекомендуется.

Как я могу просто повторно использовать существующую систему игрового фрейма 2? Thanks

ответ

9

Чтобы получить доступ к системе актеров, выбранной по умолчанию, вам необходимо импортировать play.api.libs.concurrent.Akkahelper.

Akka.system будет ссылка на систему актёра по умолчанию, а затем вы можете сделать все, что с ним, как вы могли бы сделать с системой актера, созданной себя:

import play.api.libs.concurrent.Akka 

val myActor = Akka.system.actorOf(Props[MyActor], name = "myactor") 
Akka.system.scheduler.scheduleOnce(...) 
+0

можно также использовать 'context.system()'? – user1870400

+0

Да, но это работает только из уже существующего актера – kosii

+0

Привет, Спасибо, пожалуйста, изучите этот. Я очень стараюсь на этом http://stackoverflow.com/questions/42963476/cannot-use-a-method-returning-play-mvc-websocket-as-a-handler-for-requests-in-pl# 42963476 – user1870400

1

При использовании play.api.libs.concurrent.Akka вы используете актерскую систему, созданную при игре. На самом деле это способ поощрения. Вы можете прочитать это в documentation.

+0

Спасибо за быстрый ответ и ссылку. Я просматривал https://www.playframework.com/documentation/2.3.x/ThreadPools и http://doc.akka.io/docs/akka/2.3.4/scala/dispatchers.html и искал «систему ». – Eduardo

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