当前位置: 首页 > 知识库问答 >
问题:

Akka类型得参与者与Akka Http-找不到ActorRefFactory

邬飞捷
2023-03-14

我正在尝试使用类型化执行器版本2.6.3和akka http版本10.1.11,而在非类型化执行器中都运行良好,现在我得到了编译错误

object Main extends App {

   def createServer(implicit system: ActorSystem[IdentityCalculated]) = {

implicit val materializer = ActorMaterializer()

 }
 def apply(): Behavior[IdentityCalculated] = {
Behaviors.setup { context =>

  val identityManager = context.spawn(IdentityManager(), "identity-manager")

  implicit val timeout = Timeout(10, TimeUnit.SECONDS)
  implicit val scheduler = context.system.scheduler

  identityManager.tell(CalculateIdentity(context.self))

  Behaviors.receiveMessage{
    case IdentityCalculated(_,_,_) =>
      println("got response")
      Behaviors.same
  }
}

}
ActorSystem(Main(), "credentials-manager")

}

共有1个答案

龙志勇
2023-03-14

您可以使用经典流(尽管运行在非类型化的ActorSystem上,但仍然是类型化的),方法是替换:

implicit val materializer = ActorMaterializer()

implicit val materializer = system.classicSystem
 类似资料:
  • 我正在尝试在Scala上实现AKKA http和一些Actor。我用Akka创建了一个web应用程序。但我在一个或两个不同的路由上有这个错误/16。(显然是随机的): 服务器无法及时响应您的请求。请稍后再试! 你能给我解释一下为什么和怎么修吗?我对Akka真的是新手。 主类:

  • ``` 所以,我的问题是--有没有一种干净的方法来结构和重构路由,而不是将它们集中在一个大的路由定义中?我也许可以创建一个参与者(路由器)的层次结构,主路由定义只是将其委托给路由器,随着我们深入参与者层次结构,我们会逐步添加更多的细节。但是否有一两种普遍接受的模式来组织路线呢?

  • 正如我在akka规范中所读到的,它在actors中支持mdc。例如,我可以将unic信息放在mdc中,然后在actor中使用它。但是期货呢?akka是否提供了任何保证,即在actor中启动的未来将具有相同的mdc?另外,发送给其他参与者的消息呢?默认情况下是否复制了MDC? 注意事项 对我来说,这看起来很奇怪,我只能在一个参与者代码中使用MDC。

  • 对于我正在构建的新akka应用程序,我有一个设计挑战。问题/挑战是:在客户端,我制作了一个简单的actor,它发送一个请求,然后使用been()来等待正确的服务器应答,当然还包括一条超时消息,以防我在正确的时间内没有得到应答。然而,有趣的是在服务器端。这里我有以下结构: 参与者A(配置为循环路由器)此路由器正在接收来自客户端的所有请求。 参与者A然后将消息转发给参与者A1、A2。。。Ax都是在演员

  • 我很难弄清楚我如何知道我的演员何时从非演员代码中完成。 尝试使用akka演员进行并行执行,这似乎真的很好,但我需要知道何时所有人都完成了。 我添加了一个监督者演员,产生演员来做工作,从监督者/父演员,我可以观看孩子的终止消息。 我需要从akka actor系统之外的常规java代码中得到帮助,以确定我的监督actor是否完成。 这是否可能,请提供指针。 谢谢哈瑞