Товч эргэлдэж, таб алдаа харуулж, арван минут бөглөсөн маягт чинь алга болжээ. Таны мэдэхгүй зүйл бол холболт тасрахаас өмнө бичлэг хүрсэн эсэх юм. Энэ тодорхойгүй байдлыг бүтэлгүйтэл гэж үзэх нь давхардсан сэтгэгдэл, давхар захиалга, давтагдсан дэмжлэгийн тасалбар үүсгэдэг арга юм.

Тогтоосон дарааллаар сэргээ: текстийг хадгал, үр дүнг ол, зөвхөн дараа нь хоёр дахь илгээлт зөвшөөрөгдсөн эсэхийг шийд.

Текст болон цагийн тэмдэглэгээнээс эхэл

Өөр юу ч хүрэхээс өмнө агуулгыг хуудаснаас хуулж ав, хөтөч талбарт хадгалж буй нооргийг оруулаад. Цаг, аль хуудаст байсан, ямар үйлдэл хийснээ бич, учир нь эдгээр гурван мэдээлэл үлдсэн шалгалтыг боломжтой болгодог. Таб нээлттэй хэвээр бол сүлжээний бичлэгийг унших хүртэл нээлттэй орхи. Текстийг хадгалах нь юу ч зарцуулахгүй, харин алдах нь бүх ажлыг зарцуулна.

Дараа нь үнэхээр ажиглаж болох хоёр төрлийн гэмтлийг ялга. Хүсэлтийн дунд тасарсан холболт ба алдаатай хариу өгсөн сервер сүлжээний самбарт өөрөөр харагдана, зөвхөн хоёр дахь нь аппын шийдвэрийн талаар ямар нэг юм хэлнэ.

Аппын өөрийн харагдацаас үр дүнг хай

Үр дүнг харуулах унших харагдацыг дахин ачаал: сэтгэгдлийн жагсаалт, захиалгын түүх, тасалбарын дараалал эсвэл засварлаж байсан бичлэг. Хамгийн сүүлийн бичлэгээр биш, данс, очих газар, цаг, агуулгаар тааруул, учир нь өөр хэн нэгэн таны дараа бичсэн байж болно. Арын ажлын хувьд холболтын шалгалт гэж шинэ үйлдэл үүсгэхийн оронд байгаа лавлагаа болон түүний төлөвийг хай.

Үр дүн байвал та дууссан бөгөөд алдаа нь бичлэгийн биш, хариултын замд хамаарна. Байхгүй бол апп үүнийг хараахан баталгаажуулаагүй байж болзошгүйг хадгал: дараалалд байгаа ажил, хойшлогдсон унших харагдац эсвэл хоцорч буй хуулбар амжилттай бичлэгийг хэсэг хугацаанд нууж чадна.

Дүгнэлт хийхээс өмнө түүнд тодорхой хоёр дахь харцыг өгч, хоёр шалгалтын цагийг тэмдэглэ. Хорь секундын зайтай хоёр шалгалт арван минутын зайтай хоёр шалгалтаас хамаагүй сул нотолгоо.

Хоёр дахь илгээлт аюулгүй эсэхийг шийд

Хариулт нь үйлдлээс хамаарна, таны тэвчээрээс биш. HTTP ижил зорилготой нөлөөгөөр давтаж болох аргуудыг болохгүйгээс ялгаж, хоёр дахь төрлийн автомат давталтыг эсэргүүцдэг, хэрэв утга зүй зөвшөөрдөг гэж мэдэгдэхгүй бол. Сэтгэгдэл үүсгэх, захиалга өгөх, төлбөр илгээх нь ихэвчлэн хоёр дахь бүлэгт багтдаг, тиймээс амжилттай мэт харагдах хоёр дахь товшилт эхнийхний талаар юу ч хэлэхгүй.

Хэрэв та клиентийг арчилж байгаа бол API-ийн баримтжуулсан дахин оролдлого эсвэл идемпотент байдлын механизмыг ашиглаж, оролдлого бүрт шинэ түлхүүр үүсгэхийн оронд түүнийг ижил логик үйлдэлтэй холбо.

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

Түлхүүр нь зөвхөн үйлчилгээ түүнийг үйлдэлтэй хамт хадгалж, давталтын үед анхны үр дүнг буцаавал тусална. Үйлдвэрлэлд найдахаасаа өмнө энэ зан төлөвийг туршилтын төгсгөлийн цэг дээр шалга.

Дахин ямар нэг юм дарахаас өмнө нотолгоо цуглуул

Алдааны дэлгэцийн зураг биш, сүлжээний бичлэгийг хадгал. Хүсэлтийн арга, URL, хариу эсвэл хугацаа дуусах, болсон цаг нь администратор аппын бүртгэлтэй тулгаж болох зүйл юм. Бичлэгийг командаар экспортлох эсвэл хуулах нь зөвхөн дараа нь хуулбараас күүки, зөвшөөрлийн толгой, ямар ч хувийн агуулгыг устгавал болно. Өөрийн сессийг бүтэн орхи, барьж авсан итгэмжлэл бүхий хүсэлтийг товч зам болгон хэзээ ч дахин бүү тоглуул.

Үйлчилгээний эзэнд нэг тодорхой асуулт тавь: энэ агуулгатай энэ цагт үйлдэл амжилттай болсон уу, түүнд лавлагаа байна уу? Тэр асуултад хариулт байна, харин "сайт эвдэрсэн үү" гэдэгт хариулт байхгүй.

Энэ дасгалын утга нь үйлдэл яг нэг удаа болсныг тогтоох юм. Та хааж болох алдааны мессеж нь итгэж болох бүртгэлтэй ижил биш бөгөөд өөр юу ч илгээхээс өмнө танд хоёр дахь нь хэрэгтэй.

Холбоотой нийтлэлүүд