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
.
是否可以处理来自单个参与者的多种消息类型。
例如,假设有一个叫 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
.