私は俳優です。私はシステムのライフサイクルでアプリケーションの起動時に一度この俳優を始めたいと思っています。play framework 2.5どのファイルから起動するのですか
現在、私はrenderLoginPageコントローラでそれを使用しています続き
def loginPage: Action[AnyContent] = Action.async {
implicit request =>
scheduler.sendReminder(kSessionService,userService)
Logger.debug("Redirecting renderHomePage")
}
は俳優のためのスケジューラの私のコードです:今、問題は私と一緒に起こる
class Scheduler{
val system = ActorSystem("system")
def sendReminder(kSessionService: KSessionService, userService: UserService):Unit = {
val reminder = system.actorOf(ReminderActor.props(kSessionService,userService), "reminder-actor")
reminder ! ReminderActor.Tick
}
}
は次のとおりです。私はからログアウトしていたときにアプリケーションは再びログインページをレンダリングし、同じ名前のアクターを作成しようとします。
[InvalidActorNameException:俳優名[リマインダー-俳優]が一意ではありません!]私は、スケジューラを開始するためのコードを記述する必要があります
だから私は例外を取得しています。
は、あなたがリクエストごとに俳優を作成しますか? 1つの方法は、AkkaGuiceSupportモジュールを使用することです。一方、BalancingPoolを使用して、作成するアクターの数を教えてください。一方、あなたは単にsystem.actorOf(ReminderActor.props(kSessionService、userService))という名前を残すことができます – sascha10000