我如何混合打字和非打字的演员?

我如何混合打字和非打字的演员? 据我ActorSystem当我创建ActorSystem实例时,我必须指定主角色

val system: akka.typed.ActorSystem[Start] = akka.typed.ActorSystem("main", Props(mainBehaviour))

另一方面,我使用akka-http这样初始化

implicit val system = ActorSystem()
implicit val executor = system.dispatcher
implicit val materializer = ActorMaterializer()
// etc...

我发现我可以通过调用从无类型系统创建类型化系统

object ActorSystem {
  def apply(untyped: akka.actor.ActorSystem): ActorSystem[Nothing] = new Wrapper(untyped.asInstanceOf[ExtendedActorSystem])
}

假设我做了

val typeSystem = akka.typed.ActorSystem(untypedSystem)

我如何从typeSystem创建我的第一个类型的actor? 有没有类型化ActorContextactorOf我可以打电话。

我读过关于这个主题的其他材料

  • http://blog.scalac.io/2015/04/30/leszek-akka-typed.html
  • http://www.slideshare.net/ktoso/fresh-from-the-oven-042015-experimental-akka-typed-and-akka-streams
  • https://github.com/rubendg/innovation-day-akka-typed

  • 好的方面,目前不太方便:您需要做的是创建类型化的ActorSystem,然后访问底层的非类型化的以启动HTTP扩展,但underlying方法是private[akka] 。 你可以通过在Akka命名空间中的项目中放置一些帮助代码来访问它,或者你也可以通过其他方式来访问:

    implicit val untyped = akka.actor.ActorSystem("main")
    import untyped.dispatcher
    implicit val mat = ActorMaterializer()
    
    import akka.typed.Ops._
    val typedRef = untyped.spawn(Props(mainBehaviour))
    val typedSys = ActorSystem(untyped)
    
    Http().bind(...) // and send things to typed
    
    链接地址: http://www.djcxy.com/p/27783.html

    上一篇: How do I mix typed and untyped actors?

    下一篇: how to connect to S3 using Spring Cloud AWS?