Akka Actor 可以处理 Akka Typed 中的多种消息类型吗

Can an Akka Actor Handle Multiple Message Types in Akka Typed

是否可以处理来自单个参与者的多种消息类型。

例如,假设有一个叫 TradingStrategy 的演员在交易股票。它接收从另一个 Actor 传入的定价数据。当它决定进行交易时,它会向另一个 Actor 发送一条消息,称之为 OrderActor,以进行交易。但是 TradingStrategy Actor 有兴趣知道所下的订单是成功还是被拒绝,等等......因为它可能会根据下订单操作的结果改变其策略。在此示例中,TradingStrategy 似乎需要处理 定价更新和订单更新 的消息。这可能与 Akka 打字有关吗?有没有办法处理这种情况?

这是一个代码示例: IEXData是数据信息。

  def apply(orderActor: ActorRef[OrderCommand]): Behavior[IEXData] = Behaviors.setup { context =>
    new SimpleTradingStrategy(context, brokerActor)
  }
}

class SimpleTradingStrategy(
    context: ActorContext[IEXData],
    orderActor: ActorRef[OrderCommand],
    ticker: Ticker = "spy"
) extends AbstractBehavior[IEXData](context) {

TradingStrategy 的协议必须包含指示订单更新的消息。 TradingStrategy actor 可以注册一个消息适配器,它将订单 actor 发送的消息转换为 TradingStrategy 的协议:TradingStrategy 可以呈现返回的“虚拟”ActorRef由消息适配器发送给订单参与者,而订单参与者不知道它是 TradingStrategy.