Powiedzmy, że masz aplikację i musisz co jakiś czas wykonać jakąś metodę. Niech to będzie jedna sekunda. Jak to zrobić w Springu z użyciem Javy ? Zobacz rozwiązanie oferowane przez framework Spring.
Problem
Pisałem małą aplikację i potrzebowałem dodać funkcjonalność dodawania zadania do listy zadań co jakiś okres czasu. Ogólnie można napsiać własną metodę z timerem w postaci pętli, ale Spring oferuje bardzo proste i praktyczne rozwiązanie. Nie dość, że jest proste to posiada wiele użytecznych opcji, które pozwolą ci konfigurować Scheduling na wiele sposobów.
Rozwiązanie
Krok 1
Do klasy głównej aplikacji Springa pod adnotacją @SpringBootApplication dodaj nową adnotację @EnableScheduling
Krok 2
Nad metodą, którą chcesz wykonywać automatycznie co określony span czasu, dodaj adnotację @Scheduled(fixDelay = 1000) . 1000 to ilość w ms. czyli tutaj 1s.
Konfigurowanie Schedullera Springowego
Ten Scheduller możesz konfigurować. Jeżeli chciałbyś trzymać wartość fixedDelay w pliku konfiguracyjnym. W talogu resporces znajdź lub dodaj plik application.properties i w nim wpisz wartość dla opóźnienia. Niech to będzie zmienna myDelay = 5000
Mysimy jednak coś zmienić we wcześniej dodanej adnotacji nad wykonywaną metodą. Zmień adnotację na @Scheduled(fixedDelayString = “${myDelay:5000}”).
myDelay to nazwa naszego setting (zmiennej) z pliku application.properties a :5000 oznacza domyślną wartość dla fixedDelayString jeżeli Spring nie znajdzie myDelay w pliku z ustawieniami aplikacji.
0 Komentarzy