Scenariusz wygląda następująco:Metoda połączenia po pewnym opóźnieniu w java
W mojej aplikacji otworzyłem jeden plik, zaktualizowałem go i zapisałem. Po zwolnieniu pliku zapisanego zdarzenia wykona jedną metodę: abc()
. Ale teraz chcę dodać opóźnienie po zwolnieniu zdarzenia save, powiedzmy 1 minutę. Więc dodałem Thread.sleep(60000)
. Teraz po 1 minucie uruchomi się metoda abc()
. Do tej pory wszystko działa dobrze.
Załóżmy jednak, że użytkownik zapisał plik 3 razy w ciągu 1 minuty, metoda zostanie wykonana 3 razy po każdej 1 minucie. Chcę wykonać metodę tylko raz w ciągu następnej minuty po pierwszym zapisaniu wywołanym z najnowszą zawartością pliku.
Jak mogę obsłużyć taki scenariusz?
użyj timertask –
Użyj 'ScheduledExecutorService'. Zapisz przyszłość zwróconą przez metodę 'schedule' i' cancel' ją, jeśli później jest inna akcja zapisu. –
Duplikat http://stackoverflow.com/questions/2258066/java-run-a-function-after-a-specific-number-of-seconds – Swapnil