Shopify Flow-munkafolyamatok optimalizálása

Amikor létrehoz egy munkafolyamatot, fontos, hogy az a lehető leghatékonyabban fusson. Ez a dokumentum azokat a forgatókönyveket vázolja fel, amelyek a munkafolyamatok korlátozását vagy az API-korlátok kimerülését okozhatják, és tippeket ad a problémák megoldására vagy megkerülésére.

Gyakori teljesítményproblémák

Ez a szakasz olyan gyakori forgatókönyveket vázol fel, amelyek teljesítményproblémákat okozhatnak a munkafolyamatokban. Előfordulhat, hogy egyszerre több forgatókönyv is érvényesül, ami növeli a teljesítményproblémák észlelésének valószínűségét. A szerkesztő konfigurációjával vagy a sebességkorlátozással kapcsolatos hibák esetén használja a hibaelhárítási útmutatót.

Nagy forgalmú kiváltók

A nagy forgalmú kiváltók azok, amelyeknél a mögöttes esemény gyakran bekövetkezik. Például a Termékváltozat készletmennyisége megváltozott kiváltó minden készletváltozás esetén lefut egy üzletben. A kiváltó forgalma megsokszorozza a munkafolyamatban felmerülő problémákat. Például, ha egy munkafolyamat 100 terméket kér le, és percenként 1000-szer fut le, akkor percenként 100 000 terméket fog lekérni. Ez teljesítményproblémákat okozhat.

Megoldás: Optimalizálja a munkafolyamatait kevesebb adat felhasználásával, vagy használjon várakozási lépéseket a munkafolyamat felosztásához.

Több munkafolyamat ugyanazzal a kiváltóval

A Flow-ban több, ugyanazt a kiváltót használó munkafolyamatot is létrehozhat. Ezek a munkafolyamatok párhuzamosan futnak, amikor az esemény bekövetkezik. Ez problémás lehet, ha túl sok, ugyanazt a kiváltót használó munkafolyamatot futtat a következő okok miatt:

  • A munkafolyamatok ütközhetnek egymással.
  • A munkafolyamatok egyszerre próbálnak adatokat lekérni és API-kat meghívni, az üzletét pedig a Shopify API-korlátai korlátozzák abban, hogy egyszerre hány kérelmet tud kezelni.

Megoldás: Vonja össze az ugyanazt a kiváltót használó munkafolyamatokat egyetlen munkafolyamatba. Ez azt is lehetővé teszi, hogy Ön szabályozza, mikor fussanak le, így nem ütköznek egymással. A munkafolyamatok összevonása különösen akkor hasznos, ha a munkafolyamatok nem kérnek le sok adatot, vagy ha az általuk lekért adatok megegyeznek. Ha a munkafolyamatok sok különböző adatot kérnek le, akkor jobb teljesítményt érhet el, ha külön tartja őket.

Listák vagy helytelen adatok használata

Amikor létrehoz egy munkafolyamatot, előfordulhat, hogy objektumok listáját használja, például termékekét vagy rendelésekét. Ha objektumlistát használ, akkor a Flow a lista összes objektumát le fogja kérni. Ez problémát okozhat, ha a lista sok adatot tartalmaz.

Egy másik gyakori probléma a helytelen adatok véletlen kiválasztása. Például egy rendelésen szereplő termékadatok ellenőrzéséhez lehet, hogy az order / line items / product / tags helyett az order / publication / products / tags lehetőséget választotta. Az első eredmény általában helytelen, mivel egy kiadvány összes termékét kéri le, miközben a szándék a rendelésen szereplő termékek ellenőrzése. Egy ilyen nagy lista kiválasztása teljesítményproblémákat okozhat, a rossz lista kiválasztása pedig azt eredményezheti, hogy az automatizálás helytelenül működik.

Megoldás: Gondosan válassza ki a szükséges adatokat, és kerülje a listák használatát, ha nincs rájuk szüksége. Tesztelje a munkafolyamatait, hogy megbizonyosodjon arról, hogy a várt módon működnek.

Metamezők

Az egyes metamező- vagy metaobjektum-adatok lekérése nem okozhat teljesítményproblémákat. Gyakori probléma azonban a metafields lista kiválasztása és egy erőforrás összes metamezőjének végigjárása egy ciklusban. Ha egy value mező sok adatot tartalmaz, például HTML-objektumok használatakor, az nagy mennyiségű adat feldolgozását eredményezheti, ami teljesítményproblémákat okozhat.

Megoldás: A metafields helyett használja a metafield objektumot.

Az Adatok lekérése műveletek túlzott használata

Az olyan Adatok lekérése műveletet használó munkafolyamatok, mint a Rendelési adatok lekérése, úgy vannak kialakítva, hogy az Adatok lekérése műveletekből munkafolyamatonként legfeljebb 100 objektumot adjanak vissza. Ennek a korlátnak a túllépése teljesítményproblémákat okozhat.

Megoldás: Futtassa gyakrabban a munkafolyamatot, hogy a lekérdezésnek ne kelljen 100-nál több eredményt visszaadnia. Ismételt lekérdezések helyett használja újra ugyanazt az Adatok lekérése műveletet.

Nincsenek lekérdezési szűrők az Adatok lekérése műveletekben

Az Adatok lekérése műveletek a Shopify API-t hívják meg. Ha nincs megadva lekérdezés, akkor az API vagy az összes erőforrást adja vissza, vagy egyet sem. Ez teljesítményproblémákat okozhat, de azt is eredményezheti, hogy az üzletében helytelen műveletek hajtódnak végre, amikor a visszaadott adatokat később a munkafolyamatban felhasználja.

Megoldás: Mindig használjon lekérdezési szűrőket az Adatok lekérése műveletekben.

Helytelen lekérdezési szűrők az Adatok lekérése műveletekben

Az Adatok lekérése lekérdezések korlátozott számú lekérdezési szűrőt, egy meghatározott szintaxist és a szűrőkben használható értékek egy meghatározott készletét támogatják. A helytelen szűrő, szűrőérték vagy szintaxis megadása a teljes lekérdezés figyelmen kívül hagyását okozhatja, ami ahhoz hasonló problémákat eredményezhet, mint amikor nincs megadva lekérdezési szűrő.

Megoldás: A Flow-ban a művelet által biztosított dokumentáció segítségével keresse meg az elérhető lekérdezési szűrők listáját. Mindig tesztelje a lekérdezési szűrőket, hogy megbizonyosodjon arról, hogy a várt adatokat adják vissza. A visszaadott adatok áttekintéséhez használhatja a Flow-ban a Kimenet naplózása műveletet, vagy közvetlenül meghívhatja a Shopify Admin API-t egy API-kliensen, például a Postmanen, vagy a GraphiQL alkalmazáson keresztül.

További megoldások a gyakori teljesítményproblémákra

Várakozási lépések használata az adatlekérés késleltetésére

A várakozási lépések lehetővé teszik a munkafolyamat szüneteltetését egy megadott időre, de a várakozási lépések a munkafolyamatok optimalizálására is használhatók. Minden várakozási lépés hatékonyan külön fázisokra osztja a munkafolyamat végrehajtását. Amikor a munkafolyamat fut, automatikusan lekéri az első várakozási lépésig szükséges adatokat (majd a várakozási lépés után újra lekéri az adatokat a munkafolyamat hátralévő részéhez).

Ha egy munkafolyamat nagy forgalmú kiváltót használ és sok adatot kér le, de csak alkalmanként hajt végre műveletet, akkor bármilyen bonyolult adatot vagy logikát elhelyezhet egy feltétel és várakozási lépés páros után. Például:

  1. Kiváltó: Termékváltozat készletmennyisége megváltozott.
  2. Feltétel: Ellenőrizze, hogy a termék szerepel-e egy kollekcióban.
  3. Ha igaz, Művelet: Várakozás 2 másodpercig.
  4. Művelet: E-mail küldése a vásárlónak (sok adattal).

Ebben a példában a 4. lépéshez szükséges adatok lekérdezése csak a várakozási lépés befejezése után történik meg. Ha a feltétel általában hamis, akkor ez azt jelenti, hogy a munkafolyamat gyorsabban és hatékonyabban fog futni.

Amit nem kell optimalizálni

Ugyanazon adatok használata több műveletben

Ha ugyanazt a mezőt több lépésben is használja, a Flow elemzi ezen mezők használatát, és csak egyszer kéri le az adatokat. Ez azt jelenti, hogy az adatokat annyiszor használhatja, ahányszor csak akarja, anélkül, hogy a teljesítmény miatt kellene aggódnia.