Экземпляр Akka-2 должен оставаться в бесконечном цикле и каждые 10 минут проверять данные для обработки.
Как мне спроектировать цикл так, чтобы экземпляр вызывал сам себя, проверял работу, которую нужно выполнить, а затем спал в течение определенного интервала?
Также я вижу, что больше нельзя запрашивать размер почтового ящика. Как убедиться, что сообщения игнорируются, пока активна рабочая задача (в данном случае функция отправки)?
case class Dispatch()
// Automatical start? The start function has been removed since Akka 2 ?
val dispatcher = system.actorOf(Props[MailDispatcher])
class MailDispatcher extends Actor {
private val interval = Config.getLong("mail.check.interval")
context.setReceiveTimeout(Duration(interval, TimeUnit.SECONDS))
def receive = {
case ReceiveTimeout => {
self ! Dispatch
}
case Dispatch => dispatch()
case e: Exception => Logger.error("unexpected Error: " + e)
}
def dispatch() {
// trigger mail-dispatch
}
}