Make’da xatolarni qayta ishlash: Retry, Break, Rollback va Ignore
Chuqur3 daqInnovialabs tahririyati
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
| Direktiva | Nima bo‘ladi | Ishga tushirish holati | Qachon ishlatish |
|---|---|---|---|
| Ignore | joriy bandl tashlab yuboriladi, qolganlari davom etadi | muvaffaqiyat | xato muhim emas, masalan ixtiyoriy maydon yo‘q |
| Resume | modul siz bergan natija bilan almashtiriladi, oqim davom etadi | muvaffaqiyat | mantiqiy standart qiymat bor |
| Break | bandl tugallanmagan bajarilish sifatida saqlanadi, avtoqaytarish mumkin | ogohlantirish | vaqtinchalik nosozliklar: taymaut, API limitlari |
| Rollback | ssenariy to‘xtaydi, tranzaksion modullar orqaga qaytariladi | xato | ma’lumot yo to‘liq yozilishi, yo umuman yozilmasligi kerak |
| Commit | ssenariy to‘xtaydi, bajarilgan ish saqlanadi | muvaffaqiyat | to‘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:
- Ssenariy sozlamalarida Allow storing of incomplete executions ni yoqing.
- Modulga ishlovchi qo‘shing va Break direktivasini tanlang.
- 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:
- Ishlovchi marshrut: xato matni, ssenariy nomi va bandlning asosiy maydonlari (buyurtma ID, mijoz) bilan Telegram, Slack yoki email moduli.
- So‘ng direktiva: vaqtinchalik xatolar uchun Break, jiddiylari uchun Rollback.
- 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.