如何将 NoRoutee 用作自定义路由逻辑的包罗万象的案例?
How to use NoRoutee as catch-all case for custom routing logic?
我在为我的 Akka 路由器指定一些自定义路由逻辑时遇到问题。这是我目前所拥有的:
class OrderRoutingLogic extends RoutingLogic {
private val markets = mutable.Map.empty[Security, ActorRef]
def select(message: Any, routees: IndexedSeq[Routee]): Routee = {
message match {
case order: Order => ActorRefRoutee(markets(order.security))
case _ => NoRoutee // will send to DeadLetters!
}
}
IntelliJ IDEA 告诉我我没有指定 select(message: Any, routees: IndexedSeq[Routee]): Routee
并且我不明白为什么。 How to use custom Router in Akka 2.3? has an answer that uses akka.routing.NoRoutee(虽然没有模式匹配)。我做错了什么?
这是因为 routees
参数类型不正确:应该是 immutable.IndexedSeq[Routee]
而不是 IndexedSeq[Routee]
。我同意这很棘手!
我在为我的 Akka 路由器指定一些自定义路由逻辑时遇到问题。这是我目前所拥有的:
class OrderRoutingLogic extends RoutingLogic {
private val markets = mutable.Map.empty[Security, ActorRef]
def select(message: Any, routees: IndexedSeq[Routee]): Routee = {
message match {
case order: Order => ActorRefRoutee(markets(order.security))
case _ => NoRoutee // will send to DeadLetters!
}
}
IntelliJ IDEA 告诉我我没有指定 select(message: Any, routees: IndexedSeq[Routee]): Routee
并且我不明白为什么。 How to use custom Router in Akka 2.3? has an answer that uses akka.routing.NoRoutee(虽然没有模式匹配)。我做错了什么?
这是因为 routees
参数类型不正确:应该是 immutable.IndexedSeq[Routee]
而不是 IndexedSeq[Routee]
。我同意这很棘手!