Asosiy kontentga o‘tish
Innovialabs

Make’da xatolarni qayta ishlash: Retry, Break, Rollback va Ignore

Chuqur3 daq

Qisqacha

Make’da modulga xato ishlovchi marshrut qo‘shiladi va u direktiva bilan tugaydi; beqaror API uchun avtomatik qayta urinishli Break va tugallanmagan bajarilishlarni saqlashni yoqing, direktivadan oldin esa ogohlantirish qo‘ying.

Make xatolarni qanday qayta ishlaydi

Modul xato bersa va ishlovchi bo‘lmasa, ssenariy xato bilan to‘xtaydi. Bu ketma-ket bir necha ishga tushirishda takrorlansa, Make ssenariyni o‘chirib qo‘yishi mumkin va kimdir payqamaguncha ma’lumotlar qayta ishlanmaydi.

Xatti-harakatni boshqarish uchun modulga xato ishlovchi marshrut qo‘shiladi: modulni o‘ng tugma bilan bosing → Add error handler. Marshrut faqat shu modul xato berganda ishlaydi va direktiva — keyin nima qilish haqidagi ko‘rsatma bilan tugaydi.

Beshta direktiva va ularni qachon tanlash

DirektivaNima bo‘ladiIshga tushirish holatiQachon ishlatish
Ignorejoriy bandl tashlab yuboriladi, qolganlari davom etadimuvaffaqiyatxato muhim emas, masalan ixtiyoriy maydon yo‘q
Resumemodul siz bergan natija bilan almashtiriladi, oqim davom etadimuvaffaqiyatmantiqiy standart qiymat bor
Breakbandl tugallanmagan bajarilish sifatida saqlanadi, avtoqaytarish mumkinogohlantirishvaqtinchalik nosozliklar: taymaut, API limitlari
Rollbackssenariy to‘xtaydi, tranzaksion modullar orqaga qaytariladixatoma’lumot yo to‘liq yozilishi, yo umuman yozilmasligi kerak
Commitssenariy to‘xtaydi, bajarilgan ish saqlanadimuvaffaqiyatto‘xtash kerak, lekin natijani saqlash lozim

Muhim: Rollback va Commit faqat tranzaksiyani qo‘llab-quvvatlaydigan modullarga ta’sir qiladi (masalan, Make data store’lari va ba’zi ma’lumotlar bazalari). Yuborilgan xat yoki CRM’da yaratilgan bitimni Rollback bekor qilmaydi.

Retry: beqaror API’ga so‘rovlarni takrorlash

Alohida Retry direktivasi yo‘q — qayta urinishlar Break orqali qilinadi:

  1. Ssenariy sozlamalarida Allow storing of incomplete executions ni yoqing.
  2. Modulga ishlovchi qo‘shing va Break direktivasini tanlang.
  3. Automatically complete execution ni yoqing, urinishlar soni va ular orasidagi intervalni belgilang.

Make xato bergan bandlni saqlaydi va keyinroq uni xato yuz bergan moduldan qayta ishga tushiradi. Bu vaqtda boshqa bandllar qayta ishlanishda davom etadi.

Ba’zi vaqtinchalik xatolar uchun (ulanish muammolari, so‘rovlar limiti oshishi) saqlash yoqilgan bo‘lsa, Make tugallanmagan bajarilishlarni aniq Break’siz ham qaytarishi mumkin. Baribir xatti-harakatni aniq belgilang — natija oldindan ma’lum bo‘ladi.

Qayta urinishlar uchun amaliy qoidalar:

  • Interval limit oynasidan uzun bo‘lsin. API daqiqasiga so‘rovlarni cheklasa, bir necha soniyadan keyin qaytarish yordam bermaydi.
  • Idempotentlik. Qayta urinish dublikat yaratishi mumkin. Yozuv yaratishdan oldin uni noyob kalit (email, buyurtma raqami) bo‘yicha qidiring yoki upsert ishlating.
  • Urinishlar soni cheklangan bo‘lsin. Validatsiya xatosini cheksiz qaytarish hech narsani tuzatmaydi.

Tugallanmagan bajarilishlar

Ssenariydagi Incomplete executions bo‘limi — oxirigacha yetmagan bandllar navbati. Har birini ochib, ma’lumot yoki mappingni tuzatib, qayta ishga tushirish yoki o‘chirish mumkin.

Bu jim ma’lumot yo‘qotilishidan asosiy himoya: ariza yo‘qolmaydi, qaror kutadi. Lekin navbatni ko‘rib turish kerak, aks holda u shunchaki to‘planib boradi.

Xatolar baland ovozli bo‘lsin

Bildirishnomasiz ishlovchi — baribir jim nosozlik. Ishlaydigan sxema:

  1. Ishlovchi marshrut: xato matni, ssenariy nomi va bandlning asosiy maydonlari (buyurtma ID, mijoz) bilan Telegram, Slack yoki email moduli.
  2. So‘ng direktiva: vaqtinchalik xatolar uchun Break, jiddiylari uchun Rollback.
  3. Masalan, ma’lumot xatolarini ulanish muammolaridan ajratish uchun marshrutga xato turi yoki matni bo‘yicha filtr qo‘ying.

Qo‘shimcha:

  • profil sozlamalarida xatolar va ssenariy o‘chirilishi haqidagi Make bildirishnomalarini yoqing;
  • ssenariy sozlamalarida ketma-ket xatolar uchun oqilona limit belgilang;
  • mijozlar ma’lumotlari uchun maxfiylik opsiyasini yoqing, shunda bandl tarkibi loglarda saqlanmaydi.

Ko‘p uchraydigan xatolar

  • «Yiqilmasin» deb hamma joyda Ignore. Ssenariy yashil, buyurtmalar esa yo‘qoladi.
  • Orqaga qaytarib bo‘lmaydigan tashqi API’lar uchun Rollback.
  • Tugallanmagan bajarilishlarni saqlash yoqilmagan holda Break.
  • Ogohlantirish yo‘q: muammo haqida mijozdan eshitasiz.

Ko‘p beriladigan savollar

Ignore xato bergan bandlni tashlab yuboradi va u boshqa davom etmaydi. Resume modul javobi o‘rniga siz bergan natijani qo‘yadi va bandl ssenariy bo‘ylab yo‘lini davom ettiradi.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.