playframework - 在游戏中使用 Actor

标签 playframework singleton akka playframework-2.4

我跟着剧本描述如何使用 Actor :https://www.playframework.com/documentation/2.4.x/ScalaAkka他们建议如下:

@Singleton
class Application @Inject() (system: ActorSystem) extends Controller {

  val helloActor = system.actorOf(HelloActor.props, "hello-actor")

  //...
}

但这导致:
play.sbt.PlayExceptions$CompilationException: Compilation error[trait Singleton is abstract; cannot be instantiated]
        at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
        at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:49) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:44) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
        at play.sbt.run.PlayReload$.taskFailureHandler(PlayReload.scala:44) ~[na:na]
        at play.sbt.run.PlayReload$.compileFailure(PlayReload.scala:40) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]

Tos 看看我做了什么或跟着做:https://github.com/dataplayground/playground

编辑:

删除 @Singleton造成:
could not find implicit value for parameter timeout: akka.util.Timeout

这是代码:
implicit val timeout = 5.seconds

def sayHello(name: String) = Action.async {
  (helloActor ? SayHello(name)).mapTo[String].map { message =>
    Ok(message)
  }
}

最佳答案


implicit val timeout = akka.util.Timeout(5.seconds)

import javax.inject.Singleton

关于playframework - 在游戏中使用 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33916684/

相关文章:

java - Akka & Java——遇到死信

java - 文件下载在 Play 框架 2.2.2 中返回损坏的文件(我认为)

playframework 2.4 GlobalSettings onStart 弃用

java - 隐藏一个类对其他类的可见性

c++ - 单例模式解释

java - Akka - Actor 如何获得对 Web 服务的引用

java - Akka actor resizer 没有创建实例

grails - 最适合 Multi-Tenancy /多模板 SAAS 应用程序的 Web 框架

scala - 如何在 Play 2.1 中过滤访问代码请求

C++ 单例 : how good is this solution? 优点/缺点,替代方案