Kako koristiti Shed Lock s Java 11?

May 16, 2025

Ostavite poruku

Tom Zhang
Tom Zhang
Ja sam šef proizvodnje u Lianhu, nadgledajući proizvodne procese kako bi se osigurala učinkovitost i održivost. Cilj mi je održati našu reputaciju visokokvalitetnih hardverskih proizvoda uz smanjenje utjecaja na okoliš.

Hej tamo! Kao dobavljač za zaključavanje, podijeljen sam s vama kako koristiti Shed Lock s Java 11. Shed Lock je sjajan alat koji vam pomaže u rukovanju distribuiranim bravama u Java aplikaciji. Super je korisno kada imate više instanci da se pokrene vaša aplikacija i morate biti sigurni da su određene zadatke izvršene samo jednom instancom.

Što je proliveni zaključavanje?

Prije nego što zaronimo u kako - da brzo razgovaramo o tome što je proliveni brava. Shed Lock je Java knjižnica koja pruža jednostavan način za implementaciju distribuiranih brava. Podržava razne mehanizme za pohranu poput JDBC, Redis, MongoDB itd. Ova fleksibilnost čini ga odličnim izborom za različite vrste projekata.

Postavljanje projekta

Prvo stvari, morate postaviti svoj projekt Java 11. Ako koristite Maven, dodajte ovisnosti o prorezipom.xml. Evo primjera kako dodati JDBC implementaciju:

<opsedence> <oplupId> net.javacrumbs.shedlock </pseadId> <epcifactid> Shedlock-Provider-jdbc-template </rtictifactid> <verzija> 4.42.0 </ verzij> </pendendence> <spertid> net.Javacrumbs.Shedd.Shedd.Shedd.Shedd.ShedlOlk. <verzija> 4.42.0 </ verzija> </videncija>

Ako koristite Gradle, dodajte ove linije svojimBuild.gradle::

implementacija 'net.javacrumbs.shedlock: Shedlock-Provider-JDBC-Template: 4.42.0' implementacija 'net.javacrumbs.shedlock: Shedlock-spring: 4.42.0'

Konfiguriranje davatelja zaključavanja

Nakon što dodate ovisnosti, morate konfigurirati davatelja zaključavanja. Pretpostavimo da koristimo JDBC bazu podataka. Morat ćete stvoriti aBackproviderBean u vašoj konfiguraciji proljeća.

7-3
uvoz net.javacrumbs.shedlock.core.lockprovider; uvoz net.javacrumbs.shedlock.provider.jdbctemplate.jdbctemplatelockprovider; uvoz org.springframework.context.annotation.bean; uvoz org.springframework.context.annotation.configuration; uvoz org.springframework.jdbc.core.jdbctemplate; uvoz javax.sql.dataSource; @Configuration javna klasa ShedlockConfig {@Bean Public LockProvider LockProvider (DataSource DataSource) {vrati novi JdbcTemplatelockProvider (JdbcTEmplateLockProvider.configuration.Builder ().). }}

Ovaj kôd stvara aBackproviderBean koji koristi predložak JDBC za interakciju s bazom podataka. AKorištenjedbTime ()Metoda kaže da Shed Lock koristi vrijeme baze podataka za upravljanje zaključavanjem.

7-2

Korištenje SED zaključavanja u usluzi

Sada kada je konfiguracija gotova, da vidimo kako koristiti Shed Lock u vašoj usluzi. Pretpostavimo da imate metodu usluge koju želite zaključati. Možete koristiti@SchedulerlockNapomena koju je pružio Shed Lock.

uvoz net.javacrumbs.shedlock.spring.annotation.schedulerlock; uvoz org.springframework.scheduling.annotation.scheduled; uvoz org.springframework.stereotip.service; @Service javna klasa myservice {@scheduled (fiksyRate = 60000) @schedulerlock (name = "myTaskLock", lockAtSoNuTfor = "59s", lockatleastfor = "30s") javna void myTask () {// vaš zadatak ide ovdje ... "Ranning.Out.Out.Out.Out.println ( }}

U ovom primjeru,@Schedulednapomena činimytask ()Metoda se pokreće svakih 60 sekundi. A@SchedulerlockNapomena osigurava da samo jedan instanca aplikacije može izvršiti ovu metodu istodobno. AimeAtribut je jedinstven identifikator za zaključavanje. ACurl -post zaatribut određuje maksimalno vrijeme koje se brava može održati iLocatleastforAtribut određuje minimalno vrijeme koje brava treba održati.

Različiti davatelji zaključavanja

Kao što sam već spomenuo, Shed Lock podržava različite davatelje brave. Pogledajmo koristeći Redis kao davatelja brave.

Prvo dodajte Redis ovisnost svom projektu. Ako koristite Maven:

<opsundency> <oplupId> net.javacrumbs.shedlock </psearod> <irrtifactid> Shedlock-Provider-Redis-Spring </ arcifactId> <verzija> 4.42.0 </ verzija> </osudence>

A za Gradle:

implementacija 'net.javacrumbs.shedlock: Shedlock-Provider-Redis-Spring: 4.42.0'

Zatim konfigurirajte Redis davatelja zaključavanja u vašoj konfiguraciji opruge:

uvoz net.javacrumbs.shedlock.core.lockprovider; uvoz net.javacrumbs.shedlock.provider.redis.spring.redislockprovider; uvoz org.springframework.context.annotation.bean; uvoz org.springframework.context.annotation.configuration; uvoz org.springframework.data.redis.connection.redisconnectionFactory; @Configuration javna klasa redicedLockConfig {@Bean Public LockProvider LockProvider (RedisconnectionFactory RedisconnectionFactory) {return New RedisLockProvider (RedisConnectionFactory); }}

Tada možete koristiti isto@SchedulerlockNapomena u vašim metodama usluga i Shed Lock upotrijebit će Redis za upravljanje bravama.

8-3

Rješavanje problema

Ponekad stvari ne mogu ići kako je planirano. Ako imate problema sa Shed Lockom, evo nekoliko uobičajenih problema i rješenja.

  • Zaključavanje nije puštena: ProvjeriteCurl -post zaatribut. Ako je postavljeno predugo, brava možda neće biti puštena pravovremeno. Također možete provjeriti postoje li iznimke u vašem kodu koje sprječavaju da se brava pravilno pusti.
  • Više slučajeva izvršavajući zaključani zadatak: Provjerite da li svi instanci koriste istog davatelja i konfiguracije. Također, provjerite je li baza podataka ili Redis poslužitelj dostupan iz svih instanci.

Ostale vrste brava koje nudimo

Nismo samo u prolivenim bravama. Nudimo i razne druge brave koje bi mogle biti korisne za različite aplikacije. Na primjer, pogledajte našeBrava bočnih vrata, što je savršeno za osiguranje bočnih vrata. NašeVrata za samo zaključavanjeje sjajna opcija ako želite vrata koja se automatski zaključavaju. A ako trebate osigurati skladište, našaZaključavanje skladištaraje upravo ono što vam treba.

Zaključak

Korištenje Shed Lock -a s Java 11 izvrstan je način upravljanja distribuiranim bravama u vašoj aplikaciji. Lako je postaviti i pruža puno fleksibilnosti s različitim pružateljima davatelja zaključavanja. Bez obzira koristite li JDBC, Redis ili drugi podržani mehanizam za pohranu, Shed Lock vas je pokrio.

Ako ste zainteresirani za kupnju naših brava ili bilo koje od naših drugih rješenja za zaključavanje, voljeli bismo razgovarati s vama. Posegnite na nas kako bismo započeli raspravu o nabavi i pronašli najbolje rješenje za zaključavanje za vaše potrebe.

7-6

Reference

  • Službena dokumentacija prolivene zaključavanja
  • Proljetni okvirni dokumentacija
Pošaljite upit