Optimizacija Shopify Flow tokova posla
Kada napravite tok posla, želite da budete sigurni da se on izvršava što efikasnije. Ovaj dokument opisuje scenarije koji mogu dovesti do toga da vaši tokovi posla budu prigušeni ili da iscrpe API ograničenja, kao i savete o tome kako da rešite ove probleme ili da primenite zaobilazna rešenja.
Na ovoj stranici
Uobičajeni problemi sa učinkom
U ovom odeljku su opisani uobičajeni scenariji koji mogu da izazovu probleme sa učinkom u vašim tokovima posla. Moguće je da se istovremeno pojavi više od jednog scenarija, što bi povećalo verovatnoću da primetite probleme sa učinkom. Za greške u vezi sa konfiguracijom uređivača ili ograničenjem stope, koristite vodič za rešavanje problema.
Okidači velikog obima
Okidači velikog obima su oni kod kojih se osnovni događaj često dešava. Na primer, okidač Količina zaliha varijante proizvoda je promenjena se izvršava pri svakoj promeni zaliha u prodavnici. Obim okidača deluje kao množilac svakog problema u vašem toku posla. Na primer, ako tok posla preuzima 100 proizvoda i izvršava se 1000 puta u minutu, on će preuzeti 100.000 proizvoda u minutu. To može izazvati probleme sa učinkom.
Rešenje: Optimizujte tokove posla korišćenjem manje podataka ili koristite korake čekanja za particionisanje toka posla.
Više tokova posla koristi isti okidač
U aplikaciji Flow možete da napravite više tokova posla koji koriste isti okidač. Ovi tokovi posla će se izvršavati paralelno jedan sa drugim kada se događaj desi. Može da dođe do problema ako izvršavate previše tokova posla pomoću istog okidača iz sledećih razloga:
- Može doći do međusobnog sukoba tokova posla.
- Tokovi posla pokušavaju da istovremeno preuzmu podatke i pozovu API-je, a ograničeno je koliko zahteva vaša prodavnica može da obradi odjednom usled ograničenja za Shopify API.
Rešenje: Kombinujte tokove posla koji koriste isti okidač u jedan tok posla. Ovo vam takođe omogućava da kontrolišete kada se svaki od njih izvršava da ne bi došlo do njihovog međusobnog sukoba. Kombinovanje tokova posla je naročito korisno ako oni ne preuzimaju mnogo podataka ili ako su podaci koje preuzimaju isti. Ako tokovi posla preuzimaju dosta različitih podataka, onda odvojeni tokovi mogu da dovedu do boljeg učinka.
Korišćenje lista ili pogrešnih podataka
Kada pravite tok posla, možda ćete koristiti listu objekata, kao što su proizvodi ili porudžbine. Ako koristite listu objekata, Flow će preuzeti sve objekte na listi. To može da predstavlja problem kada lista sadrži puno podataka.
Još jedan uobičajen problem je slučajni izbor pogrešnih podataka. Na primer, za proveru podataka o proizvodima na porudžbini ste možda izabrali order / publication / products / tags umesto order / line items / product / tags. Prvi rezultat je obično netačan jer preuzima sve proizvode za publikaciju kada je namera da se provere proizvodi na porudžbini. Izbor tako velike liste može da dovede do problema sa učinkom, a izbor pogrešne liste može da dovede do toga da vaša automatizacija uradi pogrešnu stvar.
Rešenje: Pažljivo izaberite podatke koji su vam potrebni i izbegavajte korišćenje lista kada to nije neophodno. Testirajte tokove posla kako biste bili sigurni da funkcionišu prema očekivanjima.
Metapolja
Preuzimanje podataka o pojedinačnom metapolju ili metaobjektu ne bi trebalo da izazove probleme sa učinkom. Međutim, čest problem je izbor liste metafields i prolazak kroz sva metapolja na resursu. Ako polje value sadrži mnogo podataka, na primer kada se koriste HTML objekti, to može da rezultira obradom velikog broja podataka i potencijalno dovede do problema sa učinkom.
Rešenje: Koristite objekat metafield umesto metafields.
Prekomerna upotreba radnji „Preuzmi podatke“
Tokovi posla koji koriste radnju Preuzmi podatke, kao što je Preuzmi podatke o porudžbini, dizajnirani su tako da vrate najviše 100 objekata po toku posla iz radnji Preuzmi podatke. Više od 100 objekata može da izazove probleme sa učinkom.
Rešenje: Češće izvršavajte tok posla tako da vaš upit ne mora da vraća više od 100 rezultata. Ponovo koristite istu radnju Preuzmi podatke umesto ponavljanja upita.
Nema filtera upita u radnjama „Preuzmi podatke“
Radnje Preuzmi podatke pozivaju Shopify API. Ako nijedan upit nije prisutan, onda će API vratiti sve resurse ili nijedan. To može da izazove probleme sa učinkom, ali i dovesti do preduzimanja pogrešnih radnji u prodavnici kada koristite podatke koji su kasnije vraćeni u tok posla.
Rešenje: Uvek uvrstite filtere upita u svoje radnje Preuzmi podatke.
Netačni filteri upita u radnjama „Preuzmi podatke“
Upiti Preuzmi podatke podržavaju ograničen skup filtera upita, određenu sintaksu i određeni skup vrednosti koje se mogu koristiti u filterima. Unos pogrešnog filtera, vrednosti filtera ili sintakse može dovesti do ignorisanja celog upita, što može da izazove probleme slične onima kada nema prisutnog filtera upita.
Rešenje: Koristite dokumentaciju koju obezbeđuje radnja u aplikaciji Flow da biste pronašli listu dostupnih filtera upita. Uvek testirajte filtere upita da biste bili sigurni da vraćaju očekivane podatke. Možete da koristite radnju „Zabeleži izlaz“ u aplikaciji Flow da biste pregledali vraćene podatke ili možete da pozovete Shopify Admin API direktno putem API klijenta kao što je Postman ili aplikacije GraphiQL.
Dodatna rešenja za uobičajene probleme sa učinkom
Koristite korake čekanja za odlaganje preuzimanja podataka
Koraci čekanja vam omogućavaju da pauzirate tok posla na određeno vreme, ali ovi koraci se mogu koristiti i za optimizaciju tokova posla. Svaki korak čekanja efektivno deli izvršavanje toka posla u zasebne faze. Kada se tok posla izvršava, automatski se preuzimaju podaci koji su potrebni do prvog koraka čekanja (i nakon tog koraka se podaci ponovo preuzimaju za preostali deo toka posla).
Ako tok posla koristi okidač velikog obima i preuzima dosta podataka, ali samo povremeno preduzima radnje, onda možete da stavite bilo koje složene podatke ili logiku nakon para uslova i koraka čekanja. Na primer:
- Okidač: Količina zaliha varijante proizvoda je promenjena.
- Uslov: Provera da li je proizvod u kolekciji.
- Ako je tačno, Radnja: Sačekaj 2 sekunde.
- Radnja: Pošalji imejl kupcu (sa puno podataka).
U ovom primeru podaci potrebni za 4. korak se traže tek nakon što se završi korak čekanja. Ako je uslov uglavnom netačan, to znači da će se tok posla izvršavati brže i efikasnije.
Šta ne treba optimizovati
Korišćenje istih podataka u više radnji
Kada koristite isto polje u više koraka, Flow analizira upotrebu tih polja i preuzima podatke samo jednom. To znači da te podatke možete da koristite koliko god puta želite bez brige o učinku.