Mae’r botwm yn troi, mae’r tab yn dangos gwall, ac mae’r ffurflen y gwnaethoch ei llenwi am ddeng munud wedi mynd. Yr hyn nad ydych chi’n ei wybod yw a gyrhaeddodd y cynnig ysgrifennu cyn i’r cysylltiad farw. Trin yr anhysbys hwnnw fel methiant yw’r ffordd y mae sylwadau dyblyg, archebion dwbl a thocynnau cymorth ailadroddus yn cael eu creu.

Adferwch mewn trefn sefydlog: cadwch y testun, dewch o hyd i’r canlyniad, ac yn unig wedyn penderfynwch a oes caniatâd i ail gyflwyno.

Dechreuwch gyda’r testun a’r stamp amser

Copïwch y cynnwys allan o’r dudalen cyn i chi gyffwrdd ag unrhyw beth arall, gan gynnwys unrhyw ddrafft y mae’r porwr yn dal i’w gadw yn y maes. Nodwch yr amser, y dudalen yr oeddech arni a’r weithred a gymerwyd gennych, oherwydd y tri manylyn hynny sy’n gwneud gweddill yr ymchwiliad yn bosibl. Os yw’r tab yn dal ar agor, gadewch ef ar agor nes i chi ddarllen y cofnod rhwydwaith. Nid yw cadw’r testun yn costio dim, ac mae ei golli yn costio’r dasg gyfan.

Yna gwahanwch y ddau fath o fethiant y gallwch eu harsylwi mewn gwirionedd. Mae cysylltiad a dorrodd yng nghanol y cais a gweinydd a atebodd â gwall yn edrych yn wahanol yn y panel rhwydwaith, a dim ond yr ail sy’n dweud rhywbeth wrthych am benderfyniad yr ap.

Chwiliwch am y canlyniad yng ngolwg yr ap ei hun

Ail-lwythwch yr olwg ddarllen a fyddai’n dangos y canlyniad: y rhestr sylwadau, hanes yr archeb, ciw’r tocynnau neu’r cofnod yr oeddech yn ei olygu. Cydweddwch ar gyfrif, cyrchfan, amser a chynnwys yn hytrach nag ar y cofnod diweddaraf, oherwydd efallai bod rhywun arall wedi ysgrifennu ar eich ôl. Ar gyfer tasg gefndir, chwiliwch am y cyfeirnod presennol a’i statws yn lle creu gweithrediad newydd fel prawf cysylltedd.

Os yw’r canlyniad yno, rydych wedi gorffen ac mae’r gwall yn perthyn i lwybr yr ateb yn hytrach na’r cynnig ysgrifennu. Os nad yw yno, cadwch y posibilrwydd nad yw’r ap wedi ei gyflawni eto: gall tasg yn y ciw, golwg ddarllen oediog neu replica sy’n llusgo guddio cynnig ysgrifennu llwyddiannus am gyfnod.

Rhowch ail gipolwg diffiniedig iddo cyn dod i gasgliad, a nodwch amser y ddau wiriad. Mae dau wiriad ugain eiliad ar wahân yn dystiolaeth lawer gwannach na dau wiriad ddeng munud ar wahân.

Penderfynwch a yw ail gyflwyniad yn ddiogel

Mae’r ateb yn dibynnu ar y gweithrediad, nid ar eich amynedd. Mae HTTP yn gwahanu dulliau y gellir eu hailadrodd gyda’r un effaith arfaethedig oddi wrth y rhai na ellir, ac mae’n cynghori yn erbyn ailgynnig awtomatig o’r ail fath oni bai y gwyddys bod y semanteg yn caniatáu hynny. Mae creu sylw, gwneud archeb ac anfon taliad fel arfer yn y grŵp ail, a dyna pam nad yw ail glic sy’n edrych yn llwyddiannus yn dweud dim am y cyntaf.

Os ydych yn cynnal y cleient, defnyddiwch y mecanwaith ailgynnig neu idempotence y mae’r API yn ei ddogfennu, a’i gysylltu â’r un gweithrediad rhesymegol yn hytrach na chynhyrchu allwedd newydd ar gyfer pob ymgais. Nid yw dynodydd cais a ddefnyddir ar gyfer olrhain yn allwedd atal dyblygiad oni bai bod y gweinydd yn ei drin felly.

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

Dim ond os yw’r gwasanaeth yn ei storio yn erbyn y gweithrediad ac yn dychwelyd y canlyniad gwreiddiol ar ailadrodd y mae’r allwedd yn helpu. Profwch yr ymddygiad hwnnw ar bwynt terfyn llwyfannu cyn dibynnu arno mewn cynhyrchu.

Casglwch dystiolaeth cyn pwyso unrhyw beth eto

Cadwch y cofnod rhwydwaith yn hytrach na sgrinlun o’r gwall. Dull y cais, yr URL, yr ateb neu’r terfyn amser, a’r amser y digwyddodd yw’r hyn y gall gweinyddwr ei gydberthyn â chofnodion yr ap. Allforiwch neu copïwch y cofnod fel gorchymyn dim ond os ydych wedyn yn tynnu cwcis, penawdau awdurdodi ac unrhyw gynnwys preifat o’r copi. Gadewch eich sesiwn eich hun yn gyfan, ac na chwaraewch byth gais a ddaliwyd yn cynnwys manylion mewngofnodi fel llwybr byr.

Gofynnwch un cwestiwn penodol i berchennog y gwasanaeth: a lwyddodd y gweithrediad gyda’r cynnwys hwn ar yr amser hwn, ac a oes cyfeirnod ar ei gyfer? Mae ateb i’r cwestiwn hwnnw, tra nad oes ateb i "a dorrodd y safle".

Pwynt yr ymarfer yw sefydlu bod y weithred wedi digwydd unwaith yn union. Nid yw neges wall y gallwch ei diystyru yr un peth â chofnod y gallwch ymddiried ynddo, a’r ail yw’r hyn sydd ei angen arnoch cyn cyflwyno unrhyw beth arall.

Erthyglau cysylltiedig