Junior — Middle
Kuidas rakendada Saga mustrit SQL-i kasutades?
sobes.tech AI
Vastus AI-lt
Saga muster on kasutatav hajutatud tehingute haldamiseks, jagades need järjestuseks kohalike tehingute ja kompensatsioonitegevustega vigade korral.
SQL-i kontekstis saab Saga rakendada oleku tabeli kaudu, kus registreeritakse sammud ja nende olekud. Näiteks:
- Loobetakse tabel
SagaLogkoos veergudega:SagaId,StepName,Status. - Iga kohaliku tehingu täitmine ja edukas lõpetamine registreeritakse
SagaLog-s koosStatus = 'Completed'. - Kui samm ebaõnnestub, käivitatakse kompensatsioonipäringud, et tagasi pöörata eelnevad sammud.
Tabeli struktuuri näide:
CREATE TABLE SagaLog (
SagaId UNIQUEIDENTIFIER PRIMARY KEY,
StepName NVARCHAR(100),
Status NVARCHAR(20),
Timestamp DATETIME DEFAULT GETDATE()
);
C#-koodis saab juhtida sammude täitmist ja registreerida nende staatust selles tabelis, tagades kontrolli ja võimaluse tagasi pöörduda vigade korral.
Nii realiseeritakse Saga tehingu sammude staatuse haldamise ja vajadusel kompensatsioon SQL-päringute täitmise kaudu.