Bok tamo! Kao dobavljača Shed Locka, često me pitaju o odnosu između Shed Locka i Springove napomene @Scheduled. Na prvi pogled može izgledati kao čudan spoj, ali držite se mene i ja ću vam objasniti.
Prvo, razgovarajmo o tome što su te dvije stvari. Spring's @Scheduled annotation je super zgodan alat u okviru Spring. Programerima omogućuje zakazivanje pokretanja metoda u određenim intervalima. Možete postaviti metodu da se pokreće svakih nekoliko sekundi, minuta, sati ili čak u određeno doba dana. To je kao da imate digitalnu budilicu za svoj Java kod. Na primjer, možda imate metodu koja provjerava registracije novih korisnika svakih 30 minuta. Uz @Scheduled to možete jednostavno ostvariti.
S druge strane, Shed Lock osigurava da se samo jedna instanca planiranog zadatka izvodi u isto vrijeme, posebno u distribuiranom okruženju. U distribuiranom sustavu možete imati više instanci svoje aplikacije koja se izvodi na različitim poslužiteljima. Bez odgovarajuće sinkronizacije, isti planirani zadatak mogao bi se izvoditi istovremeno na više instanci, što može dovesti do raznih problema poput oštećenja podataka ili duplicirane obrade.
Dakle, kako rade zajedno? Pa, kada koristite @Scheduled u distribuiranom postavu, morate biti sigurni da su planirani zadaci koordinirani. Tu na scenu stupa Shed Lock. Djeluje kao vratar, osiguravajući da se samo jedna instanca određenog planiranog zadatka pokrene.
Recimo da imate aplikaciju za e-trgovinu s više poslužitelja koji upravljaju različitim dijelovima poslovanja. Imate planirani zadatak koji ažurira razine zaliha svake večeri u ponoć. Ako koristite samo @Scheduled bez Shed Lock-a, svaki poslužitelj može pokušati ažurirati inventar u isto vrijeme. To bi moglo rezultirati netočnim brojanjem zaliha ili čak pretjeranom prodajom proizvoda.
Ali kada integrirate Shed Lock s Springovim @Scheduledom, koristi se mehanizam za zaključavanje. Kada jedna instanca aplikacije pokuša pokrenuti zakazani zadatak ažuriranja inventara, prvo pokušava dobiti zaključavanje. Ako je zaključavanje dostupno, preuzima ga i pokreće zadatak. Dok se izvodi, druge instance aplikacije koje pokušaju pokrenuti isti zadatak vidjet će da je zaključavanje već preuzeto i neće izvršiti zadatak. Nakon što prva instanca završi zadatak, oslobađa zaključavanje, a ako je zadano ponovno pokretanje kasnije, druga instanca tada može preuzeti zaključavanje i pokrenuti ga.
Sada, razgovarajmo o vrstama brava koje Shed Lock može koristiti. Dostupno je nekoliko opcija, kao što su zaključavanje baze podataka, zaključavanje Redisa i zaključavanje Zookeepera. Zaključavanje baze podataka prilično je popularno jer većina aplikacija već ima bazu podataka. Shed Lock može koristiti bazu podataka za pohranu informacija o bravi. Kada zadatak pokuša nabaviti zaključavanje, on umeće zapis u posebnu tablicu zaključavanja. Ako zapis već postoji, to znači da je zaključano.
Redis zaključavanja također su odličan izbor, pogotovo ako vaša aplikacija već koristi Redis za predmemoriju ili druge svrhe. Redis je vrlo brz, tako da su operacije preuzimanja i otpuštanja zaključavanja brze, što može poboljšati izvedbu vaših planiranih zadataka.
Zookeeper brave prikladne su za složenije distribuirane sustave. Zookeeper je usluga distribuirane koordinacije koja može vrlo učinkovito rukovati distribuiranim zaključavanjima. Pruža jaka jamstva dosljednosti, što je važno kada trebate osigurati da se samo jedna instanca zadatka izvodi u isto vrijeme.
Jedna od prednosti korištenja Shed Lock-a sa Springovim @Scheduledom je ta što ga je relativno lako integrirati. Samo trebate dodati ovisnost Shed Lock svom projektu i konfigurirati je prema svojim potrebama. Na primjer, ako koristite zaključavanje baze podataka, trebate navesti pojedinosti veze s bazom podataka i naziv tablice zaključavanja.


Još jedna prednost je što vam daje veću kontrolu nad planiranim zadacima. Možete definirati različite strategije zaključavanja za različite zadatke. Možda su neki zadaci manje kritični i mogu tolerirati malo preklapanja, dok drugi moraju biti strogo sinkronizirani. Sa Shed Lockom možete prilagoditi ponašanje zaključavanja za svaki zadatak.
Sada, ako tražite visokokvalitetne brave za svoje šupe, mi ćemo vas pokriti. Nudimo širok izborBrava za šupuopcije koje nisu samo sigurne nego i dugotrajne. Naše brave dizajnirane su da izdrže vremenske uvjete i čuvaju vaše stvari sigurnima.
Osim brava za šupe imamo iPush Bar Lockza komercijalna vrata. Ove brave jednostavne su za korištenje i pružaju dodatni sloj sigurnosti za vaše poslovne prostore. A ako tražite brave za svoju kuću, našKućne bravesu odličan izbor. Dolaze u različitim stilovima i završnim obradama kako bi se slagali s uređenjem vašeg doma.
Ako želite saznati više o našim proizvodima ili imate bilo kakvih pitanja o tome kako Shed Lock može raditi s vašim Spring aplikacijama, slobodno nam se obratite. Ovdje smo da vam pomognemo pronaći prava rješenja za vaše potrebe sigurnosti i rasporeda. Bez obzira jeste li vlasnik male ili velike tvrtke, možemo vam pružiti proizvode i podršku koja vam je potrebna.
Zaključno, odnos između Shed Locka i Springove napomene @Scheduled temelji se na osiguravanju glatkog i ispravnog izvršavanja zakazanih zadataka u distribuiranom okruženju. Korištenjem Shed Lock-a možete izbjeći zamke istovremenog izvršavanja zadataka i svoju aplikaciju učiniti pouzdanijom. A ako ste na tržištu fizičkih brava, mi smo vaš dobavljač.
Reference
- Dokumentacija proljetnog okvira
- Službena dokumentacija za zaključavanje šupe
