Akka - повторная отправка сообщения «взлом»

В официальномАкка 2.0.4 документы это говорит:

Перезапуск актера заменяет только фактический объект актера; перезапуск не затрагивает содержимое почтового ящика, поэтому обработка сообщений возобновится после возврата ловушки postRestart. Сообщение, которое вызвало исключение, больше не будет получено. Любое сообщение, отправленное субъекту во время его перезапуска, будет помещено в очередь в его почтовый ящик, как обычно.

Позволять'скажем, у меня есть сообщение, которое заставило моего актера перезапустить. Это н'т в почтовом ящике больше, так что он выиграетне будет обработан актером, который возьмет егоместо. Если я хочу, чтобы это сообщение было обработано актером в любом случае (при условии, что порядок нене имеет значения в этом случае), будет ли плохой идеей для актера отправить сообщение себе при перезапуске?

Некоторый (псевдо) код, чтобы показать, что я имею в виду:

class ResendingActor extends Actor {
  var curMessage: Option[MyMessage] = None
  def receive = {
    case MyMessage(x) => {
      curMessage = Some(MyMessage(x))
      /* processing */
      curMessage = None
    }
  }
  override def preRestart(reason: Throwable, message: Option[Any]) {
    curMessage match {
      case Some(x) => self ! x
      case None => ;
    }
  }
}

Таким образом, сообщение, которое не былоt, обработанная субъектом до его перезапуска, помещается в конец очереди для нового субъекта.

Итак, мой вопрос: Есть ли причина, по которой я не долженэто делать?

Единственное, о чем я могу думать, это то, что если сообщение по какой-то причине искажено, оно никогда не покинет систему и не приведет к регулярному перезапуску актера ...

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

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