Акка, сбросив прежние сообщения - PullRequest
2 голосов
/ 08 октября 2019

Я хотел бы удалить более ранние сообщения от актера. Основная идея состоит в том, чтобы иметь временную метку для каждого сообщения, сохранять ее для последнего обработанного сообщения и отбрасывать сообщения раньше этой временной метки.

Я думаю создать почтовый ящик для этого, однако я не знаю:

  1. Если рекомендуется сохранить состояние в почтовом ящике.
  2. Как я могу поделиться состоянием актера (у которого есть временная метка) с почтовым ящиком.

Может быть, я пытаюсь что-то не так, и есть лучшая альтернатива для этого?

Спасибо

1 Ответ

1 голос
/ 08 октября 2019

Создание собственного почтового ящика для этого является излишним. Вы можете решить это так:

class MyActor extends Actor {

  val timestampLimit: LocalDateTime = ???

  def receive = {
    case m: Message if (m.getTimeStamp.isBefore(timestampLimit)) => // drop
    case m: Message                                              => // process
  } 
}
...