Savu Shopify Flow darbplūsmu optimizēšana
Veidojot darbplūsmu, tu vēlies pārliecināties, ka tā darbojas pēc iespējas efektīvāk. Šajā dokumentā ir aprakstīti scenāriji, kuru dēļ tavas darbplūsmas var tikt ierobežotas vai var tikt izsmelti API limiti, un sniegti padomi, kā šīs problēmas atrisināt vai atrast tām pagaidu risinājumu.
Šajā lapā
Biežākās veiktspējas problēmas
Šajā sadaļā ir aprakstīti biežākie scenāriji, kas var radīt veiktspējas problēmas tavās darbplūsmās. Vienlaikus var pastāvēt vairāk nekā viens scenārijs, kas palielina iespēju, ka saskarsies ar veiktspējas problēmām. Ja rodas kļūdas saistībā ar redaktora konfigurāciju vai pieprasījumu skaita ierobežojumiem, izmanto problēmu novēršanas ceļvedi.
Liela apjoma trigeri
Liela apjoma trigeri ir tādi, kuru pamatā esošais notikums notiek bieži. Piemēram, trigers Mainīts produkta varianta krājumu daudzums tiek izpildīts pie katrām krājumu izmaiņām veikalā. Trigera apjoms darbojas kā reizinātājs jebkurai problēmai tavā darbplūsmā. Piemēram, ja darbplūsma izgūst 100 produktus un tiek izpildīta 1000 reizes minūtē, tā izgūs 100 000 produktu minūtē. Tas var izraisīt veiktspējas problēmas.
Risinājums: optimizē savas darbplūsmas, izmantojot mazāk datu, vai izmanto gaidīšanas soļus, lai sadalītu savu darbplūsmu.
Daudzas darbplūsmas izmanto vienu un to pašu trigeri
Lietotnē Flow, izmantojot vienu un to pašu trigeri, var izveidot vairākas darbplūsmas. Šīs darbplūsmas tiks izpildītas paralēli viena otrai, kad notiks šis notikums. Ja, izmantojot vienu trigeri, tiek izpildīts pārāk daudz darbplūsmu, tas var radīt problēmas tālāk minēto iemeslu dēļ:
- Darbplūsmas var konfliktēt viena ar otru.
- Darbplūsmas vienlaikus mēģina izgūt datus un izsaukt API, bet veikala iespējas vienlaikus apstrādāt noteiktu pieprasījumu skaitu ierobežo Shopify API ierobežojumi.
Risinājums: apvieno vienā darbplūsmā tās darbplūsmas, kas izmanto vienu un to pašu trigeri. Tas ļauj arī kontrolēt, kad katra no tām tiek izpildīta, lai tās viena ar otru nekonfliktētu. Darbplūsmu apvienošana ir īpaši noderīga, ja darbplūsmas neizgūst daudz datu vai ja to izgūtie dati ir vienādi. Ja darbplūsmas izgūst daudz atšķirīgu datu, to atdalīšana var nodrošināt labāku veiktspēju.
Sarakstu vai nepareizu datu izmantošana
Veidojot darbplūsmu, tu vari izmantot objektu (piemēram, produktu vai pasūtījumu) sarakstu. Ja izmanto objektu sarakstu, Flow izgūs visus sarakstā esošos objektus. Tas var radīt problēmas, ja sarakstā ir daudz datu.
Vēl viena bieža problēma ir nejauša nepareizu datu atlasīšana. Piemēram, lai pārbaudītu pasūtījuma produkta datus, tu, iespējams, atlasīji pasūtījums / publikācija / produkti / tagi, nevis pasūtījums / rindas vienumi / produkts / tagi. Pirmais rezultāts parasti ir nepareizs, jo tas izgūst visus publikācijas produktus, lai gan nolūks ir pārbaudīt pasūtījuma produktus. Tik liela saraksta izvēle var radīt veiktspējas problēmas, un nepareiza saraksta izvēle var novest pie tā, ka automatizācija nedarbojas pareizi.
Risinājums: rūpīgi atlasi nepieciešamos datus un izvairies no sarakstu izmantošanas, ja tas nav nepieciešams. Pārbaudi savas darbplūsmas, lai pārliecinātos, ka tās darbojas, kā paredzēts.
Metalauki
Atsevišķu metalauku vai metaobjektu datu izgūšanai nevajadzētu radīt veiktspējas problēmas. Tomēr bieži sastopama problēma ir saraksta metalauki izvēle un visu resursa metalauku apstrāde ciklā. Ja lauks vērtība satur daudz datu, piemēram, kad tiek izmantoti HTML objekti, tas var novest pie liela datu apjoma apstrādes un potenciāli radīt veiktspējas problēmas.
Risinājums: saraksta metalauki vietā izmanto objektu metalauks.
Pārmērīga darbību Iegūt datus izmantošana
Darbplūsmas, kurās izmanto darbību Iegūt datus (piemēram, Iegūt pasūtījuma datus), ir izstrādātas tā, lai no darbībām Iegūt datus atgrieztu ne vairāk kā 100 objektus vienā darbplūsmā. Vairāk nekā 100 objektu izmantošana var radīt veiktspējas problēmas.
Risinājums: izpildi darbplūsmu biežāk, lai tavam vaicājumam nebūtu jāatgriež vairāk par 100 rezultātiem. Atkārtotu vaicājumu veikšanas vietā izmanto to pašu darbību Iegūt datus atkārtoti.
Darbībās Iegūt datus nav vaicājuma filtru
Darbības Iegūt datus izsauc Shopify API. Ja nav norādīts neviens vaicājums, API atgriezīs vai nu visus resursus, vai nevienu. Tas var radīt veiktspējas problēmas, kā arī novest pie nepareizu darbību veikšanas veikalā, kad atgrieztie dati vēlāk tiek izmantoti darbplūsmā.
Risinājums: savās darbībās Iegūt datus vienmēr iekļauj vaicājuma filtrus.
Nepareizi vaicājuma filtri darbībās Iegūt datus
Vaicājumi Iegūt datus atbalsta ierobežotu vaicājuma filtru kopu, specifisku sintaksi un noteiktu vērtību kopu, ko var izmantot filtros. Ievadot nepareizu filtru, filtra vērtību vai sintaksi, viss vaicājums var tikt ignorēts, kas var radīt problēmas, kas līdzīgas tām, kad nav pievienots neviens vaicājuma filtrs.
Risinājums: izmanto lietotnes Flow darbībā pieejamo dokumentāciju, lai atrastu pieejamo vaicājuma filtru sarakstu. Vienmēr pārbaudi savus vaicājuma filtrus, lai pārliecinātos, ka tie atgriež gaidītos datus. Tu vari izmantot lietotnes Flow darbību Reģistrēt izvadi, lai pārskatītu atgrieztos datus, vai arī izsaukt Shopify Admin API tieši, izmantojot API klientu, piemēram, Postman, vai lietotni GraphiQL.
Papildu risinājumi biežākajām veiktspējas problēmām
Gaidīšanas soļu izmantošana, lai aizkavētu datu izgūšanu
Gaidīšanas soļi ļauj apturēt darbplūsmu uz noteiktu laiku, taču tos var izmantot arī darbplūsmu optimizēšanai. Katrs gaidīšanas solis efektīvi sadala darbplūsmas izpildi atsevišķos posmos. Kad darbplūsma tiek izpildīta, tā automātiski izgūst datus, kas nepieciešami līdz pirmajam gaidīšanas solim (un pēc gaidīšanas soļa atkal izgūst datus atlikušajai darbplūsmas daļai).
Ja darbplūsma izmanto liela apjoma trigeri un izgūst daudz datu, bet darbību veiks tikai reizēm, sarežģītus datus vai loģiku vari ievietot pēc nosacījuma un gaidīšanas soļa pāra. Piemēram:
- Trigers: Mainīts produkta varianta krājumu daudzums.
- Nosacījums: Pārbaudīt, vai produkts atrodas kolekcijā.
- Ja patiess, Darbība: Gaidīt 2 sekundes.
- Darbība: Nosūtīt klientam e-pasta vēstuli (ar lielu datu apjomu).
Šajā piemērā 4. solim nepieciešamie dati tiek pieprasīti tikai pēc soļa Gaidīt pabeigšanas. Ja nosacījums parasti ir aplams (false), tas nozīmē, ka darbplūsma tiks izpildīta ātrāk un efektīvāk.
Ko nevajadzētu optimizēt
Vienu un to pašu datu izmantošana vairākās darbībās
Ja vienu un to pašu lauku izmanto vairākos soļos, Flow analizē šo lauku lietojumu un izgūst šos datus tikai vienu reizi. Tas nozīmē, ka tu vari izmantot šos datus tik reižu, cik nepieciešams, neuztraucoties par veiktspēju.