j'ai un scala suivant snipet:ActorSystem.scheduler cesse de fonctionner après nombre d'événements
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
implicit val wsClient = AhcWSClient()
import scala.concurrent.ExecutionContext.Implicits.global
ActorSystem().scheduler.schedule(30.seconds, 5.minutes)(
{
Logger.debug("5m tick")
/* more code */
}
Il est une partie d'application domotique et il doit être exécuté à long terme pendant des mois entre le redémarrage.
En ce moment, il tiques toutes les 5 minutes, et produit un message d'enregistrement à la console et le fichier. Il y a aussi une méthode très simple qui fonctionne sous l'appel de Logger, mais il n'y a pas d'erreur.
Le problème est, après ~ 2-3 jours, les arrêts tic-tac. J'ai re-exécuté l'application plusieurs fois et il semble s'arrêter sans erreur, après cette période de temps. Je n'ai pas trouvé d'aide en ligne, alors j'espère que certains d'entre vous ont déjà rencontré le même problème et connaissent la réponse.
Merci,
Martin
Merci @thwiegan, j'ai essayé le superviseur et le redémarrage approche . Redémarrer fonctionne comme un charme. –
Je voulais savoir quel est le problème avec le programmateur de akka, donc je l'ai enroulé autour du code entier avec try-catch et a découvert qu'il semble que api 3ème partie, je vous appelle est un échec une fois dans quelques jours. La méthode elle-même ne réorganise pas un autre appel en cas d'échec précédent. Votre solution, cependant, enregistre la situation. Great, merci encore pour votre aide. –
Bonne solution! Vous pouvez également faire 'horaire (0.minutes, 5.minutes, auto, « tick »)' dans cet acteur, qui devrait également continuer à envoyer des messages 'tick' même lorsque l'acteur est relancée en raison d'une exception. –