Je, uwasilishaji huo ulioisha muda uliihifadhi kazi yako kweli?
Hitilafu ya kivinjari inathibitisha kuwa jibu halikufika, si kwamba uandishi ulishindikana. Hifadhi maandishi, tafuta matokeo kwenye programu, kisha amua kama kujaribu tena ni salama.
Kitufe kinazunguka, kichupo kinaonyesha hitilafu, na fomu uliyotumia dakika kumi kuijaza imetoweka. Usichokijua ni kama uandishi ulifika kabla ya muunganisho kufa. Kuichukulia hali hiyo isiyojulikana kama kushindwa ndiyo njia ambayo maoni yanayorudiwa, oda mbili na tiketi za usaidizi zinazorudiwa huundwa.
Rejesha kwa mpangilio maalum: shikilia maandishi, tafuta matokeo, na hapo ndipo uamue kama uwasilishaji wa pili unaruhusiwa.
Anza na maandishi na alama ya muda
Nakili maudhui kutoka ukurasa kabla ya kugusa kitu kingine chochote, ikiwa ni pamoja na rasimu ambayo kivinjari bado kinaishikilia kwenye sehemu. Andika muda, ukurasa uliokuwa na hatua uliyofanya, kwa sababu maelezo hayo matatu ndiyo yanayowezesha uchunguzi uliobaki. Kama kichupo bado kiko wazi, kiache wazi hadi usome ingizo la mtandao. Kuhifadhi maandishi hakugharimu chochote, na kuyapoteza kunagharimu kazi yote.
Kisha tenganisha aina mbili za hitilafu ambazo kwa kweli unaweza kuziona. Muunganisho uliokatika katikati ya ombi na seva iliyojibu kwa hitilafu huonekana tofauti kwenye paneli ya mtandao, na ni ya pili pekee inayokuambia kitu kuhusu uamuzi wa programu.
Tafuta matokeo katika mwonekano wa programu yenyewe
Pakia upya mwonekano wa kusoma ambao ungeonyesha matokeo: orodha ya maoni, historia ya oda, foleni ya tiketi au rekodi uliyokuwa ukihariri. Linganisha kwa akaunti, marudio, muda na maudhui badala ya ingizo la hivi karibuni, kwa sababu mtu mwingine anaweza kuwa aliandika baada yako. Kwa kazi ya chinichini, tafuta rejeleo lililopo na hali yake badala ya kuunda operesheni mpya kama jaribio la muunganisho.
Kama matokeo yapo, umemaliza na hitilafu ni ya njia ya jibu, si ya uandishi. Kama hayapo, shikilia uwezekano kwamba programu bado haijaithibitisha: kazi iliyo kwenye foleni, mwonekano wa kusoma uliochelewa au nakala iliyobaki nyuma vinaweza kuficha uandishi uliofaulu kwa muda.
Ipe mtazamo wa pili maalum kabla ya kufikia hitimisho, na andika muda wa ukaguzi wote wawili. Ukaguzi wa mara mbili wenye mapengo ya sekunde ishirini ni ushahidi dhaifu sana kuliko ukaguzi wa mara mbili wenye mapengo ya dakika kumi.
Amua kama uwasilishaji wa pili ni salama
Jibu linategemea operesheni, si uvumilivu wako. HTTP hutenganisha mbinu zinazoweza kurudiwa kwa athari ile ile iliyokusudiwa na zile zisizoweza, na inashauri dhidi ya kurudia kiotomatiki kwa aina ya pili isipokuwa ikijulikana kuwa semantiki inaruhusu. Kuunda maoni, kuweka oda na kutuma malipo kwa kawaida ziko katika kundi la pili, ndiyo sababu mbofyo wa pili unaoonekana kufanikiwa hausemi chochote kuhusu wa kwanza.
Kama wewe ndiye unayetunza mteja, tumia utaratibu wa kujaribu tena au wa idempotensi ambao API imeandika, na uunganishe na operesheni hiyo hiyo ya kimantiki badala ya kuzalisha ufunguo mpya kwa kila jaribio. Kitambulisho cha ombi kinachotumika kwa ufuatiliaji si ufunguo wa kuzuia nakala isipokuwa seva inakichukulia hivyo.
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.jsonUfunguo unasaidia tu kama huduma inaihifadhi pamoja na operesheni na kurudisha matokeo ya awali wakati wa kurudia. Jaribu tabia hiyo kwenye kituo cha majaribio kabla ya kuitegemea katika uzalishaji.
Kusanya ushahidi kabla ya kubonyeza kitu kingine
Hifadhi ingizo la mtandao badala ya picha ya skrini ya hitilafu. Mbinu ya ombi, URL, jibu au muda wa mwisho na muda ilipotokea ndiyo mambo ambayo msimamizi anaweza kuyalinganisha na kumbukumbu za programu. Hamisha au nakili ingizo kama amri tu ikiwa baadaye utaondoa kuki, vichwa vya idhini na maudhui yoyote ya faragha kutoka kwenye nakala. Acha kipindi chako mwenyewe kikiwa kizima, na kamwe usirudie ombi lililonaswa lenye vitambulisho kama njia ya mkato.
Uliza mmiliki wa huduma swali moja mahususi: operesheni kwa maudhui haya kwa muda huu ilifanikiwa, na kuna rejeleo lake? Swali hilo lina jibu, ilhali "tovuti ilivunjika" halina.
Lengo la zoezi hili ni kuthibitisha kuwa kitendo kilitokea mara moja hasa. Ujumbe wa hitilafu unaoweza kuufunga si sawa na rekodi unayoweza kuamini, na ya pili ndiyo unayohitaji kabla ya kutuma kitu kingine chochote.