Akka Routing: отправка ответа на маршрутизатор заканчивается как мертвые буквы

я играю с Actor Routing, и я могуне могу отправить ответ обратно маршрутизатору, чтобы другой участник из списка маршрутизации мог его забрать, чего я здесь не вижу;)

м с помощью:

sender.tell([Message], context.parent)

чтобы ответить маршрутизатору, как согласно документам akka, маршрутизируемые субъекты устанавливают отправителя для себя, а их родительский узел является фактическим маршрутизатором.

при ответе выдает следующее сообщение в консоли:

[ИНФО] [13.12.2013 11: 19: 43.030] [StarBucks-akka.actor.default-dispatcher-2] [akka: // StarBucks / deadLetters] Сообщение [net.addictivesoftware.starbucks.MakeCoffee $] от Actor [akka: // StarBucks / user / Melanie # -847662818] Актеру [akka: // StarBucks / deadLetters] не было доставлено. [1] встреченные мертвые буквы.

Основным классом является:

object Starbucks extends App {
  implicit val system = ActorSystem.create("StarBucks")

  val employees = List(
    system.actorOf(Props[Employee], "Penny"),
    system.actorOf(Props[Employee], "Leonard"),
    system.actorOf(Props[Employee], "Sheldon")
  )

  val customers = List(
    ("Raj", "Tall Latte Machiato"),
    ("Howard", "Double Tall Cappuccino"),
    ("Bernadette", "Grande Spicy Pumpkin Latte"),
    ("Amy", "Dopio Espresso")
  )

  val starBucks = system.actorOf(
        Props.empty.withRouter(SmallestMailboxRouter(routees=employees)))

  customers foreach { request =>
    println("Customer %s orders a %s".format(request._1, request._2))
    starBucks ! CanIHave(request._1, request._2)
  }
}

Класс перенаправленного актера:

class Employee extends Actor {
  def receive = {
    case CanIHave(coffee, name) => {
      println("Employee %s writes '%s' and '%s' on a cup".format(self.path.name, coffee, name) )
      sender.tell(MakeCoffee(coffee, name), context.parent)
    }
    case MakeCoffee(coffee, name) => {
      println("Employee %s makes a %s for %s ".format(self.path.name, coffee, name) )
      sender.tell(CoffeeReady(coffee, name), context.parent)
    }
    case CoffeeReady(coffee, name) => {
      println("Employee %s shouts: %s for %s is ready!".format(self.path, name, coffee, name))
    }
  }
}

Ответы на вопрос(1)

Ваш ответ на вопрос