Kako koristiti Shed Lock s aplikacijom za podizanje okvira?

May 29, 2025

Ostavite poruku

John Lee
John Lee
Ja sam glavni tehnološki direktor u HANAN LIANHU Hardware Co., pokreću našu inovacijsku strategiju. Fokus mi je na razvoju vrhunskih hardverskih rješenja koja udovoljavaju modernim zahtjevima.

U modernom razvoju softvera, istodobni pristup zajedničkim resursima može dovesti do različitih problema poput nedosljednosti podataka i uvjetima rase. Shed Lock je moćan alat koji pomaže programerima da učinkovito upravljaju tim problemima istodobnosti. Kao dobavljač proreznih brava, ovdje sam da vas vodim kako se integrirati i koristiti Shed Lock s aplikacijom za dizanje okvira.

Razumijevanje prolivene brave

Shed Lock je knjižnica koja pruža distribuirane brave za zakazane zadatke u Java aplikaciji. Osigurava da samo jedan instanca zakazanog zadatka radi istovremeno na više čvorova u distribuiranom sustavu. To je ključno kada se bavite zajedničkim resursima ili obavljanjem zadataka koje se ne trebaju izvršiti istovremeno.

Osnovni koncept koji stoji iza Shed Lock -a je jednostavan: koristi bazu podataka ili druge sustave za pohranu za upravljanje bravama. Kad zakaženi zadatak započne, pokušava steći bravu. Ako je brava dostupna, zadatak se nastavlja; Inače čeka ili preskače izvršenje.

Preduvjeti

Prije nego što počnemo integrirati Shed Lock s aplikacijom za dizanje okvira, obavezno imate sljedeće:

  1. Aplikacija za radno dizanje okvira. Ako ga nemate, možete stvoriti novi projekt dizanja pomoću SBT (jednostavni alat za izradu).
  2. Baza podataka koju podržava Shed Lock. Popularni izbori uključuju MySQL, PostgreSQL i H2.
  3. Osnovno znanje o java i okvirnim konceptima kao što su zakazani zadaci i pristup bazi podataka.

Korak 1: Dodajte ovisnosti o prolivenim bravama

Prvo, u svoj projekt dizanja morate dodati ovisnosti o prometu. Ako koristite SBT, dodajte sljedeće retke u svojeBuild.sbtdatoteka:

Knjižnice biblioteke ++ = SEQ ("net.javacrumbs.shedlock" % "Shedlock-spring" % "4,40,0", "net.javacrumbs.shedlock" % "Shedlock-Provider-JDBC-Template" % "4,40.0")

Ove ovisnosti uključuju biblioteku za zaključavanje jezgre i davatelja predloška JDBC, što nam omogućava korištenje relacijske baze podataka za upravljanje zaključavanjem.

Korak 2: Konfigurirajte bazu podataka

Zatim morate konfigurirati vezu svoje baze podataka. U aplikaciji za dizanje možete koristiti Lift's Built - u sustavu za upravljanje bazama podataka ili u trećoj biblioteci poput Spring JDBC -a.

19-38-6

Evo primjera konfiguriranja JDBC izvora podataka pomoću Spring Boot -aData izvoraKonfiguracija u aplikaciji za podizanje:

uvoz org.springframework.context.annotation.bean; uvoz org.springframework.context.annotation.configuration; uvoz org.springframework.jdbc.dataSource.DriverManagerDataSource; uvoz javax.sql.dataSource; @Configuration javna klasa DataBaseConfig {@Bean Public DataSource DataSource () {vozačManagerDataSource DataSource = novi upravljačManagerDataSource (); DataSource.SetDriverClassName ("com.mysql.cj.jdbc.driver"); DataSource.setUrl ("JDBC: mySQL: // localhost: 3306/your_database"); DataSource.SetUserName ("Your_username"); DataSource.SetPassword ("your_password"); Povratak podataka; }}

Ovaj kôd konfigurira MySQL izvor podataka. Morate zamijeniti URL, korisničko ime i lozinku sa stvarnim vjerodajnicama baze podataka.

Korak 3: Stvorite davatelja zaključavanja

Shed Lock koristi davatelja zaključavanja za upravljanje bravama. Za bazu podataka utemeljenu na JDBC -u možete stvoriti aJdbcTemplateLockProviderkako slijedi:

uvoz net.javacrumbs.shedlock.provider.jdbctemplate.jdbctemplatelockprovider; uvoz net.javacrumbs.shedlock.spring.annotation.enableschedulerlock; uvoz org.springframework.context.annotation.bean; uvoz org.springframework.context.annotation.configuration; uvoz org.springframework.jdbc.core.jdbctemplate; uvoz javax.sql.dataSource; @Configuration @EnablesChedulerlock (DefaultlockOstOstfor = "PT30S") javna klasa ShedlockConfig {@Bean Public JdbcTemplateLockProvider LockProvider (DataSource DataSource) {Povratak New JDBCTEMPlateLockProvider (JDBCTCPRaTPRaTPRatPRatPRateRilRateRuration. .WithJdbCtTemplate (novi JDBCTEMPlate (DataSource)) .usingdbtime () .Build ()); }}

A@EnablesChedulerlockNapomena omogućuje prolivanje zaključavanja u vašoj prijavi izadani blokatsAtributi postavlja maksimalno vrijeme koje se može održati brava.

Korak 4: Definirajte zakazane zadatke

U aplikaciji za podizanje možete definirati zakazane zadatke pomoću Lift'sSpredmet ili proljeće@Schedulednapomena. Evo primjera korištenja@ScheduledNapomena s lovcem:

uvoz net.javacrumbs.shedlock.spring.annotation.schedulerlock; uvoz org.springframework.scheduling.annotation.scheduled; uvoz org.springframework.stereotipe.component; @Component javna klasa Planiranetasks {@scheduled (fixsRate = 60000) @schedulerlock (name = "mysCheduledTask", lockAtOnfor = "pt10s", LocKatLeastfor = "pt5s") javno nevaljano myscheduded () zadatak {//pps. }}

A@SchedulerlockNapomena se koristi za određivanje naziva brave, maksimalno vrijeme koje se brava može održati (Curl -post za), i minimalno vrijeme kada se brava treba održati (Locatleastfor).

Korak 5: Pokrenite aplikaciju

Sada kada ste konfigurirali Shed Lock i definirali svoje zakazane zadatke, možete pokrenuti svoju aplikaciju za dizanje. Kad se aktivira zakazani zadatak, Shed Lock će pokušati nabaviti bravu. Ako je brava dostupna, zadatak će izvršiti; Inače će preskočiti izvršenje.

Napredna upotreba

  • Višestruki zakazani zadaci: Možete definirati više zakazanih zadataka u svojoj aplikaciji, a svaki sa svojim zaključavanjem. Samo obavezno koristite različita imena zaključavanja za svaki zadatak.
  • Rukovanje pogreškama: Možete dodati kod za rukovanje pogreškama u svoje zakazane zadatke za obradu slučajeva u kojima se brava ne može dobiti ili zadatak ne izvršava.

Dodatne vrste zaključavanja

Pored osnovne funkcionalnosti zaključavanja, postoje i druge vrste brava koje mogu biti korisne u različitim scenarijima. Na primjer,GuraMože se koristiti u situacijama u kojima vam je potreban jednostavan i brz mehanizam za zaključavanje.Vrata za samo zaključavanjeprikladno je za aplikacije u kojima su potrebna sigurnost i automatsko zaključavanje. IZaključavanje skladištaramože se koristiti za zaštitu prostora za skladištenje i osigurati da je dopušten samo ovlašteni pristup.

Zaključak

Integriranje brave s aplikacijom okvira za dizanje izravan je proces koji može značajno poboljšati pouzdanost i dosljednost vaših zakazanih zadataka. Slijedeći korake navedene u ovom vodiču, možete osigurati da vaša aplikacija radi glatko čak i u distribuiranom okruženju.

Ako ste zainteresirani za korištenje naših rješenja za zaključavanje za vaše aplikacije za dizanje okvira ili imate bilo kakvih pitanja o našim proizvodima, pozivamo vas da nas kontaktirate na detaljnu raspravu. Naš tim stručnjaka spreman vam je pomoći u pronalaženju najboljih rješenja za zaključavanje za vaše specifične potrebe.

Reference

  • Službena dokumentacija prolivene zaključavanja.
  • Službena dokumentacija dizanja Framework -a.
  • Dokumentacija Spring Boot -a za JDBC i zakazivanje.
Pošaljite upit