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.


Seweryn

Cześć. Mam na imię Seweryn i jestem związany z IT już od lat 90. Jest to moje hobby i stała, która towarzyszy mi i chyba będzie do końca życia. Najbardziej interesują mnie takie dziedziny jak programowanie, bazy danych, analiza danych, web design. Posiadam kilka certyfikatów rozpoznawalnych w "przemyśle IT". M. in. Certified Oracle Java 8 Associate, Certified Amazon Cloud Practitioner, Certified Python Programmer. Mam także Professional Diploma in Digital Marketing oraz Certyfikat Data Analysis for Management z LSE : London School of Economics and Political Science

0 Komentarzy

Dodaj komentarz