如何将 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]。我同意这很棘手!