ASP.NET MVC - Database samtidighed

Indholdsfortegnelse
Håndteringen af samtidighed I webapplikationer er det et af de emner, vi skal bruge lidt kvalitetstid på, da vi på grund af applikationens natur kan finde tilfælde, hvor flere brugere skal interagere med det samme element.
I sig selv er interaktion Det er ikke et problem, det virkelige problem kommer, når det efter at have ændret eller rørt ved dette element er nødvendigt at gemme det i databasen, og derefter to eller flere brugere ønsker at udføre en handling på det samme element på samme tid, det er her vores logik skal definere en adfærd for at vide, hvad der er den rigtige måde at håndtere dette på.
Som vi forklarede i begyndelsen, er samtidighed Det er, når to eller flere aktører arbejder på et element i vores applikation og genererer en handling mod databasen.
Samtids sagProblemer kan opstå, når ændringerne er i modstrid, for eksempel: bruger A gemte en værdi, men bruger B ændrede også på det tidspunkt og gemte en anden værdi, i brugerens øjne blev dens indhold ikke ændret og i øjnene på bruger B var der ikke noget, der forhindrede ham i at foretage sin ændring.
Disse typer af konflikter kan ødelægge vores applikations ydeevne i brugerens øjne, så vi må evaluere, om de områder, vi har, er det værd eller ej at programmere til samtidigheden.
Lad os se nogle former for samtidighed, på denne måde kan vi forstå lidt mere, hvilken type handlinger vi kan udføre i vores applikationer:
Pessimistisk samtidighedDenne tilgang foreslår, at når vi bruger databasen, laver vi en forebyggende blokering i registreringsdatabasen i brug, med dette undgår vi, at flere brugere ændrer værdien samtidigt, problemet resulterer i, at det i webmiljøet ikke er muligt at bruge det grundigt, da der ikke er nogen tilstande, ved vi ikke rigtigt, om låsen blev anvendt eller fjernet, indtil vi kommunikerer med serveren, hvilket skaber forvirring og langsomhed i brug.
Optimistisk valgdeltagelseDenne anden tilgang gør i stedet noget lidt mere kompatibelt med internettet, når det ændres, før det gemmes i databasen, verificeres det, at dataene ikke er blevet ændret fra det øjeblik, læsningen blev foretaget, for dette foretager vi sammenligning af postværdier og et tilknyttet felt, der bærer et tidsstempel med dato, tid og sekunder for større nøjagtighed.
ASP.NET MVC Det understøtter ikke den pessimistiske tilgang, så vi skal arbejde med den optimistiske, for dette skal vi forsyne vores strukturer med datafelter for at gemme den sidste gang, den blev ændret, så vi kan vide, om værdien blev ændret, efter at vi fik posten og før vi gemmer det, kan vi med dette få en advarsel og dermed beslutte, om disse værdier skal overskrives eller ej.
Lad os se et lille kodeeksempel på, hvordan vi kunne validere dette:

Vi bemærker derefter, at vi validerer, når vi foretager en ændring i databasen, hvis feltet blev ændret, efter at vi havde foretaget læsningen, hvis ja vi rejser en undtagelse, med dette vil vi være i stand til at tage de tilsvarende handlinger, vi efterlader også plads til at kunne arbejde på de forskellige undtagelser, der kan genereres.
I slutningen af ​​denne vejledning ved vi allerede lidt mere om samtidighed i databaser og hvordan man arbejder med problemet ASP.NET MVC.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave