Ich lerne das Play 2.0-Framework für Scala und abgesehen von der Möglichkeit, Anfragen zu bearbeiten, möchte ich eine kontinuierliche Aufgabe im Hintergrund ausführen, wie eine Reihe von Timern. Und irgendwie in der Lage sein, Zugriff auf diese Timer von den Anfrage-Antwort-Aktionen zu erhalten, ohne irgendwelche Thread-Synchronisationsprobleme zu bekommen. Ich habe von Jobs in Play gehört und es gibt Schauspieler in Scala. Ich kann jedoch keine Informationen über Jobs in 2.0 finden, sie scheinen durch Promises ersetzt worden zu sein. Aber das ist wirklich nicht so, als würde man einen hartnäckigen Hintergrund-Thread laufen lassen, und ich bin mir nicht sicher, wie Actors in das ganze Paradigma passen.Play 2.0 Framework - persistente Threads für den Haupt-App-Zyklus?
Grundsätzlich ist meine Frage - was ist der traditionelle Weg, um diese Art von Ausdauer in Play 2.0 zu bekommen.
Ok, ich habe das Play Tutorial über Akteure und Planung gelesen. Das Konzept der Actors scheint mir einfach und logisch zu sein, ich habe auch etwas Erfahrung mit ihnen in Erlang, daher scheint mir alles klar zu sein, bis auf eine Sache. Was ist der bevorzugte Weg, um den Thread-Aktualisierungszyklus zu organisieren? Muss ich einfach einen regulären Aktualisierungsimpuls an den Akteur richten, der den Thread repräsentiert, indem ich den Scheduler verwende? Oder starte ich einen Thread von einem Actor und organisiere den Zyklus in seiner 'run()' Methode? – noncom
Keine zusätzlichen Threads erforderlich, wenn Sie einen Job planen möchten, um z. alle 30 Minuten, rufen Sie einfach 'Akka.system.scheduler.schedule (0 Sekunden, 30 Minuten, testActor," tick ")' und es wird es tun. Wenn Sie einen ereignisbasierten Update-Job benötigen (z. B. die Größe eines Bildes für die spätere Verwendung ändern, nachdem ein Benutzer es hochgeladen hat), senden Sie eine Nachricht an den Akteur, wenn der Job ausgeführt werden soll: 'myActor! MeineNachricht'. – Carsten
Großartig, danke! Das deckt alles ab! – noncom