2012-02-18 20 views
16

W Play 1,0, możemy zdefiniować pewne zadania, które będą realizowane w tle:Gdzie jest wsparcie pracy w Play 2.0?

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

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

+0

@Peter Mortensen, dzięki za naprawienie błędów z mojego pytania. – Freewind

+0

Hy @Freewind masz rozwiązanie? jeśli tak, proszę również powiedzieć mi. –

+1

@MuneebNasir Zobacz odpowiedź http://stackoverflow.com/a/32972812/342235 – Freewind

Odpowiedz

1

Stałe łącza w oryginalnej odpowiedzi przyjętą które pisał przez JonasAnso

Aby uzyskać funkcjonalność OnApplicationStart można użyć Cały świat onStart

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

Nadzieję, że to pomaga.

+1

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

6

Można użyć usługi programu planującego w programie akka.

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

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

zasadzie tworzenia aktora, który wykonuje swoją logikę, jeśli otrzyma pewną wiadomość.

+2

Myślę, że tego nie szukam. Zadania nie muszą być uruchamiane przez akcje, tylko pracują w tle. – Freewind

+1

Na przykład, jak używać programu planującego akka do zaimplementowania '@ OnApplicatonStart'? – Freewind

6

Dla acutal część pracy to wydaje się być sposób 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() 
      { 
       .... 
      } 
     } 
    ); 
+2

Więcej informacji można znaleźć na stronie https://www.playframework.com/documentation/2.3.x/ScalaAkka. – Josef

Powiązane problemy