scala – 如何混合使用类型和无类型的actor?
发布时间:2020-12-16 19:13:48 所属栏目:安全 来源:网络整理
导读:我如何混合有型和无类型的演员?据我所知,当我像这样创建ActorSystem实例时,我必须指定主actor val system: akka.typed.ActorSystem[Start] = akka.typed.ActorSystem("main",Props(mainBehaviour)) 另一方面,我使用像这样初始化的akka??-http implicit val
我如何混合有型和无类型的演员?据我所知,当我像这样创建ActorSystem实例时,我必须指定主actor
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?没有类型的ActorContext,我可以调用其actorOf. 我读过的关于这个主题的其他材料是 > http://blog.scalac.io/2015/04/30/leszek-akka-typed.html 解决方法
好的捕获,目前不太方便:你需要做的是创建类型化的ActorSystem然后访问底层的无类型的一个以启动HTTP扩展,但底层方法是私有的[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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |