Una instancia de Akka-2 debe permanecer en un bucle infinito y verificar cada 10 minutos para que los datos se procesen.Hacer que una instancia de Akka-2 se envíe un mensaje cada n unidades de tiempo sin desbordar el buzón
¿Cómo diseño el ciclo para que la instancia se llame a sí misma, compruebe que el trabajo se realiza y luego duerme durante un intervalo?
También veo que ya no se puede consultar el tamaño del buzón. ¿Cómo se asegura de que los mensajes se ignoren siempre que la tarea de trabajo (en este caso, la función de envío) esté activa?
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 pregunta en tu comentario: Sí, Akka 2 ha eliminado el método de inicio y comienza a crear actores. Ver http://akka.io/docs/akka/2.0-RC1/scala/actors.html#creating-actors-with-default-constructor – Frank