Liiketoimintatilanteissa samanaikaiset sisällön, kuten tavarainventaarion, saman tiedoston jne., toiminnot eivät ole sallittuja, ja ohjelmasovellus otetaan käyttöön useille palvelimille.
Aiemmin kirjoitettu zk-pohjainen hajautettu lukko on seuraava:
Mitä sinun myös tulee tietää tämän artikkelin lukemiseksi:
.NET Core toteuttaa hajautettuja lukkoja Redisin pohjaltaPeriaate on kutsua SETNX-komento redisistä, jos avain on jo olemassa, SETNX-komento ei tee mitään. Komento palauttaa arvon 1, kun asetus onnistuu, ja 0, kun asetus epäonnistuu.
Hyperlinkin kirjautuminen on näkyvissä.
Luo uusi .NET Core 3.1 -konsoliprojekti, lisää StackExchange.Redis -viittaus ja käytä nuget-komentoa seuraavasti:
Kutsumme kirjaston StringSet-metodia StackExchange.Redis -lähdekoodin kautta, ja näemme, että StringSet-metodi kutsuu yksityistä metodia GetStringSetMessage suorittaakseen eri joukkokomentoja numerointiarvon avulla, koodi on seuraava:
Suoritamme SETNX-komennon 2000 kertaa ohjelmalle tehdyn rinnakkaisen testikutsun kautta, joka suoritetaan kahdessa osassa, joissa avaimen välimuistin voimassaoloaika on 5 sekuntia, eli avain vapautetaan automaattisesti 5 sekunnin kuluttua, eli lukko vapautetaan.
Koodi on seuraava:
Kuten näette, yhteensä 2 onnistunutta lisäystä ja vuoden 1998 epäonnistunutta yritystä ovat juuri sitä, mitä odotimme, ja renderöinnit ovat seuraavat:
Tällä hetkellä lukkoa ei ole vielä avattu. (Loppu)
|