Ich verwende Akka in Play Framework anstelle eines Jobs, um den Code so zu programmieren, dass er alle X Sekunden ausgeführt wird. Ich habe eine Art Cluster (läuft auf Heroku, derzeit auf 1 Dyno, aber gelegentlich kann es einige gleichzeitige Instanzen geben).Wie plane ich einen globalen Akka-Job für mehrere Prozesse?
Gibt es eine einfache Möglichkeit, den "Job" global alle N Sekunden im gesamten Cluster auszuführen? Ich weiß, dass Quartz Out-of-Process-Speicher/Sync-Mechanismen unterstützt, z. eine DB - kann ich etwas Ähnliches in Scala verwenden?
Dies ist der Schauspieler-Setup, das auf Play Start ausgeführt wird:
object Global extends GlobalSettings {
override def onStart(app: Application) {
val monitorActor = Akka.system.actorOf(Props[MonitorLoadJob], name = "monitorLoad")
Akka.system.scheduler.schedule(0 seconds, 10 seconds, monitorActor, Tick)
}
}
vielleicht duplizieren von http://Stackoverflow.com/questions/13765466/periodic-jobs-when-running-multiple-servers/13766458 – Schleichardt
@Schleichardt - nicht ganz. Ich frage speziell nach Akka (im Kontext von Play, aber immer noch eine Akka-Frage) – ripper234