Un'istanza Akka-2 deve rimanere in un ciclo infinito e controllare ogni 10 minuti per l'elaborazione dei dati.Effettuare un'istanza Akka-2 inviare esso stesso un messaggio ogni n TimeUnits senza sovraccaricare la casella postale
Come si progetta il ciclo in modo che l'istanza si richiami, controlli il lavoro da eseguire e quindi dorme per un intervallo?
Inoltre, vedo che non è più possibile interrogare la dimensione della casella di posta. Come ci si assicura che i messaggi vengano ignorati finché l'attività di lavoro (in questo caso la funzione di invio) è attiva?
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
}
}
Considerando la domanda nel tuo commento: Sì, Akka 2 ha rimosso il metodo di avvio e avvia gli attori alla creazione. Vedi http://akka.io/docs/akka/2.0-RC1/scala/actors.html#creating-actors-with-default-constructor – Frank