Pytanie Gdzie jest wsparcie pracy w Play 2.0?


W Grać 1.0, możemy zdefiniować niektóre zadania, które zostaną wykonane w tle:

@OnApplicatonStart
@Every("1h")
public class DataJob extends Job {
    public void doJob() {
       // ...
    }
}

Ale nie mogę go znaleźć w wersji Play 2.0. Czy coś mi brakuje?


16
2018-02-18 08:16


pochodzenie


@Peter Mortensen, dzięki za naprawienie błędów z mojego pytania. - Freewind
Hy @Freewind masz rozwiązanie? jeśli tak, proszę również powiedzieć mi. - Muneeb Nasir
@MuneebNasir Zobacz odpowiedź stackoverflow.com/a/32972812/342235 - Freewind


Odpowiedzi:


Możesz użyć usługi harmonogramu w akka.

http://doc.akka.io/docs/akka/2.0/java/scheduler.html

http://doc.akka.io/docs/akka/2.0/scala/scheduler.html

Zasadniczo tworzysz aktora, który wykonuje swoją logikę, jeśli otrzyma określoną wiadomość.


6
2018-02-18 17:28



Myślę, że tego nie szukam. Zadania nie muszą być uruchamiane przez akcje, tylko pracują w tle. - Freewind
Na przykład, jak zaimplementować program planujący akka @OnApplicatonStart? - Freewind


Dla akutalnej części pracy wydaje się, że tak jest w Javie,

Akka.system().scheduler().schedule(
        Duration.create(0, MILLISECONDS),   // initial delay 
        Duration.create(5, MINUTES),        // run job every 5 minutes

        new Runnable() 
        {
            public void run() 
            {
                ....
            }
        }
    );

6
2017-10-01 07:30



Widzieć playframework.com/documentation/2.3.x/ScalaAkka po więcej szczegółów. - Josef


Naprawiono linki w oryginalnej zaakceptowanej odpowiedzi, która została przesłana przez JonasAnso

Aby uzyskać funkcjonalność OnApplicationStart, możesz użyć opcji Global onStart

Tutaj możesz zaplanować swoich aktorów za pomocą Akki.

Mam nadzieję, że to pomoże.


1
2017-10-06 14:40



Wygląda na to, że od Play 2.4 GlobalSettings jest przestarzałe? Jakie jest nowe rozwiązanie? - ttt