Die knoppie draai, die oortjie wys 'n fout, en die vorm wat jy tien minute lank ingevul het, is weg. Jy weet nie of die skryf geslaag het voordat die verbinding gebreek het nie. Om daardie onbekende as 'n mislukking te behandel, is hoe dubbele kommentare, dubbele bestellings en herhaalde ondersteuningskaartjies ontstaan.

Herstel in 'n vaste volgorde: hou die teks, vind die resultaat en besluit eers daarna of 'n tweede indiening toegelaat word.

Begin met die teks en die tydstempel

Kopieer die inhoud uit die bladsy voordat jy aan iets anders raak, insluitend enige konsep wat die blaaier nog in die veld hou. Skryf die tyd, die bladsy waarop jy was en die aksie wat jy gedoen het neer, want daardie drie besonderhede maak die res van die ondersoek moontlik. As die oortjie nog oop is, laat dit oop totdat jy die netwerkinskrywing gelees het. Om die teks te stoor kos niks, en om dit te verloor kos die hele taak.

Skei dan die twee soorte mislukkings wat jy werklik kan sien. 'n Verbinding wat midde-in die versoek verbreek het en 'n bediener wat met 'n fout geantwoord het, lyk anders in die netwerkpaneel, en net die tweede sê iets oor die toepassing se besluit.

Soek die resultaat in die toepassing se eie aansig

Herlaai die leesaansig wat die resultaat sou wys: die kommentaarlys, die bestelgeskiedenis, die kaartjiery of die rekord wat jy geredigeer het. Pas op rekening, bestemming, tyd en inhoud eerder as op die nuutste inskrywing, want iemand anders kon ná jou geskryf het. Vir 'n agtergrondtaak, soek die bestaande verwysing en sy status op eerder as om 'n nuwe bewerking as 'n konnektiwiteitstoets te skep.

As die resultaat daar is, is jy klaar en die fout hoort by die antwoordpad, nie by die skryf nie. As dit nie daar is nie, hou die moontlikheid oop dat die toepassing dit nog nie vasgelê het nie: 'n toustaande taak, 'n vertraagde leesaansig of 'n agterstallige replika kan 'n suksesvolle skryf 'n ruk lank verberg.

Gee dit 'n bepaalde tweede kyk voordat jy 'n gevolgtrekking maak, en noteer die tyd van albei kontroles. Twee kontroles twintig sekondes uitmekaar is veel swakker bewyse as twee kontroles tien minute uitmekaar.

Besluit of 'n tweede indiening veilig is

Die antwoord hang van die bewerking af, nie van jou geduld nie. HTTP skei metodes wat met dieselfde bedoelde uitwerking herhaal kan word van dié wat nie kan nie, en dit raai teen outomatiese herhalings van die tweede soort aan tensy die semantiek dit bekendlik toelaat. Om 'n kommentaar te skep, 'n bestelling te plaas en 'n betaling te stuur, val gewoonlik in die tweede groep, en daarom sê 'n tweede suksesvol-ogende klik niks oor die eerste nie.

As jy die kliënt onderhou, gebruik die herhalings- of idempotensiemeganisme wat die API dokumenteer, en koppel dit aan dieselfde logiese bewerking eerder as om vir elke poging 'n nuwe sleutel te genereer. 'n Versoekidentifiseerder wat vir nasporing gebruik word, is nie 'n duplikaatonderdrukkingsleutel nie, tensy die bediener dit so behandel.

curl -i -X POST https://api.example.net/v1/orders \
  -H "Idempotency-Key: 6f1c2a94-3b7e-4a10-9c22-5d0e8f7b1a63" \
  -H "Content-Type: application/json" \
  --data @order.json

Die sleutel help net as die diens dit teen die bewerking stoor en by 'n herhaling die oorspronklike resultaat terugstuur. Toets daardie gedrag op 'n verhoogpunt voordat jy daarop in produksie vertrou.

Teken bewyse vas voordat jy weer enigiets druk

Hou die netwerkinskrywing eerder as 'n skermskoot van die fout. Die versoekmetode, die URL, die antwoord of die verstektyd, en die tyd waarop dit gebeur het, is wat 'n administrateur met toepassingsrekords kan korreleer. Voer die inskrywing uit of kopieer dit as 'n opdrag net as jy dan koekies, magtigingsopskrifte en enige private inhoud uit die kopie verwyder. Laat jou eie sessie ongeskonde, en herhaal nooit 'n vasgevangde versoek wat bewysbewyse dra as 'n kortpad nie.

Vra die dienseienaar een spesifieke vraag: het die bewerking met hierdie inhoud op hierdie tyd geslaag, en is daar 'n verwysing daarvoor? Daardie vraag het 'n antwoord, terwyl "het die webwerf gebreek" nie een het nie.

Die punt van die oefening is om vas te stel dat die aksie presies een keer gebeur het. 'n Foutboodskap wat jy kan wegklik is nie dieselfde as 'n rekord wat jy kan vertrou nie, en die tweede is wat jy nodig het voordat jy enigiets anders indien.

Verwante artikels