|
|
Publisert på 22.09.2020 09:17:22
|
|
|
|

I forretningsscenarier er det ikke tillatt med samtidige operasjoner av innhold, som varelager, samme fil osv., og programapplikasjonen distribueres på flere servere.
Den tidligere skrevne zk-baserte distribuerte låsen er som følger:
Det du også må vite for å lese denne artikkelen:
.NET Core implementerer distribuerte låser basert på RedisPrinsippet er å kalle SETNX-kommandoen redis, hvis nøkkelen allerede eksisterer, gjør SETNX-kommandoen ingenting. Kommandoen returnerer 1 når innstillingen lykkes, og 0 når innstillingen feiler.
Innloggingen med hyperkoblingen er synlig.
Lag et nytt .NET Core 3.1-konsollprosjekt, legg til en StackExchange.Redis-referanse, og bruk nuget-kommandoen som følger:
Vi kaller bibliotekets StringSet-metode, gjennom kildekoden til StackExchange.Redis kan vi se at StringSet-metoden vil kalle den private metoden GetStringSetMessage for å utføre ulike settkommandoer gjennom oppramsningsverdien for når, koden er som følger:
Vi utfører SETNX-kommandoen 2000 ganger gjennom et parallelt testkall til programmet, som utføres i 2 deler, hvor nøkkelens cache-gyldighet er 5 sekunder, det vil si at nøkkelen automatisk frigjøres etter 5 sekunder, det vil si at låsen blir frigjort.
Koden er som følger:
Som du kan se, er totalt 2 vellykkede innsettinger og mislykkede forsøk i 1998 akkurat det vi forventet, og gjengivelsene er som følger:
På nåværende tidspunkt er låsen ennå ikke åpnet. (Slutt)
|
Foregående:Klarte ikke å finne en løsning for deler av stien "\bin\roslyn\csc.exe"Neste:EF Core Series 2 kapsler inn OnModelCreating, lager indekser ved hjelp av refleksjoner, og mer
|