Optymalizacja procesów workflow
Tworząc proces workflow, chcesz mieć pewność, że działa on tak wydajnie, jak to tylko możliwe. W tym dokumencie opisano scenariusze, które mogą spowodować ograniczenie wydajności procesów workflow lub wyczerpanie limitów API, a także wskazówki, jak rozwiązać te problemy lub znaleźć ich rozwiązanie alternatywne.
Na tej stronie
Typowe problemy z wydajnością
W tej sekcji przedstawiono typowe scenariusze, które mogą powodować problemy z wydajnością procesów workflow. Możliwe jest wystąpienie więcej niż jednego scenariusza w tym samym czasie, co zwiększy prawdopodobieństwo zaobserwowania problemów z wydajnością. W przypadku błędów związanych z konfiguracją edytora lub ograniczeniem szybkości działania należy skorzystać z poradnika rozwiązywania problemów.
Wyzwalacze o wysokim wolumenie
Wyzwalacze o wysokim wolumenie to wyzwalacze, w których zdarzenie bazowe występuje często. Na przykład wyzwalacz Zmieniono ilość zapasów wariantu produktu jest uruchamiany w przypadku każdej zmiany zapasów w sklepie. Wolumen wyzwalacza jest jak mnożnik dla każdego problemu w procesie workflow. Na przykład, jeśli proces workflow pobiera 100 produktów i działa 1000 razy na minutę, będzie pobierać 100 000 produktów na minutę. Może to powodować problemy z wydajnością.
Rozwiązanie: Zoptymalizuj procesy workflow, używając mniejszej ilości danych lub użyj kroków oczekiwania, aby podzielić workflow w sposób opisany poniżej.
Wiele procesów workflow używających tego samego wyzwalacza
We Flow można utworzyć więcej niż jeden procesów workflow przy użyciu tego samego wyzwalacza. Te procesy workflow będą działać równolegle, gdy wystąpi zdarzenie. Może to być problematyczne w przypadku uruchomienia zbyt wielu procesów workflow przy użyciu tego samego wyzwalacza z następujących powodów:
- Procesy workflow mogą ze sobą kolidować.
- Procesy workflow próbują jednocześnie pobierać dane i wywoływać interfejsy API, a Twój sklep jest ograniczony liczbą żądań, które może obsłużyć jednocześnie z powodu limitów API Shopify.
Rozwiązanie: Połącz procesy workflow używające samego wyzwalacza w jeden proces workflow. Pozwala to również kontrolować, kiedy każdy z nich jest wykonywany, aby nie kolidowały ze sobą. Łączenie procesów workflow jest szczególnie przydatne, jeśli nie wywołują one dużej ilości danych lub dane, które wywołują, są takie same. Jeśli procesy workflow wywołują wiele różnych danych, może się okazać, że ich rozdzielenie zapewnia lepszą wydajność.
Korzystanie z list lub błędnych danych
Tworząc proces workflow, możesz użyć listy obiektów, takich jak produkty lub zamówienia. Jeśli używasz listy obiektów, Flow pobiera wszystkie obiekty z listy. Może to stanowić problem, gdy lista zawiera dużą ilość danych.
Innym częstym problemem jest przypadkowe wybranie błędnych danych. Na przykład, aby sprawdzić dane produktu w zamówieniu, możesz wybrać order / publication / products / tags
zamiast order / line items / product / tags
. Pierwszy wynik jest zwykle niepoprawny, ponieważ pobiera wszystkie produkty dla publikacji, gdy zamiarem jest sprawdzenie produktów w zamówieniu. Wybór tak dużej listy może spowodować problemy z wydajnością, a wybór niewłaściwej listy może spowodować, że automatyzacja wykona niewłaściwą czynność.
Rozwiązanie: Starannie wybieraj potrzebne dane i unikaj korzystania z list, gdy nie jest to konieczne. Przetestuj swoje procesy workflow, aby upewnić się, że działają w oczekiwany sposób.
Metapola
Pobieranie danych pojedynczego metapola lub metaobiektu nie powinno powodować problemów z wydajnością. Częstym problemem jest jednak wybranie listy metafields
i zapętlenie wszystkich metapól zasobu. Jeśli pole value
zawiera dużo danych, na przykład gdy używane są obiekty HTML, może to skutkować przetwarzaniem dużej ilości danych i potencjalnie powodować problemy z wydajnością.
Rozwiązanie: Użyj obiektu metafield
(dokumenty) zamiast metafields
.
Nadmierne używanie czynności Pobierz dane
Procesy workflow używające czynności Pobierz dane, takie jak Pobierz dane zamówienia, są zaprojektowane tak, aby zwracać maksymalnie 100 obiektów na proces workflow z czynności Pobierz dane. Przekroczenie 100 obiektów może powodować problemy z wydajnością.
Rozwiązanie: Uruchamiaj proces workflow częściej, aby zapytanie nie musiało zwracać więcej niż 100 wyników. Ponowne użycie tej samej czynności Pobierz dane podczas wykonywania powtarzających się zapytań.
Brak filtrów zapytań w czynnościach Pobierz dane
Czynności Pobierz dane wywołują interfejs API Shopify. Jeśli nie zostanie znalezione żadne zapytanie, API zwróci wszystkie zasoby lub nic. Może to powodować problemy z wydajnością, ale może również powodować wykonywanie niewłaściwych czynności w sklepie, jeśli dane zwracane są później w procesie workflow.
Rozwiązanie: Zawsze dołączaj filtry zapytań do czynności Pobierz dane.
Nieprawidłowe filtry zapytań w czynnościach Pobierz dane
Zapytania Pobierz dane obsługują ograniczony zestaw filtrów zapytań, określoną składnię i określony zestaw wartości, które można używać w filtrach. Wprowadzenie niewłaściwego filtra, wartości filtra lub składni może spowodować zignorowanie całego zapytania, co może powodować problemy podobne do sytuacji, w której nie ma filtrów zapytań.
Rozwiązanie: Skorzystaj z dokumentacji dostarczonej przez czynność we Flow, aby znaleźć listę dostępnych filtrów zapytań. Zawsze testuj filtry zapytań, aby upewnić się, że zwracają oczekiwane dane. Możesz użyć czynności Dane wyjściowe dziennika we Flow (aby zobaczyć zwrócone dane) lub możesz wywołać Shopify Admin API bezpośrednio (za pośrednictwem klienta API, takiego jak Postman lub za pośrednictwem aplikacji GraphiQL).
Dodatkowe rozwiązania typowych problemów z wydajnością
Używanie kroków oczekiwania w celu opóźnienia pobierania danych
Kroki oczekiwania umożliwiają wstrzymanie procesu workflow na określony czas, ale kroki oczekiwania mogą być również używane do optymalizacji procesów workflow. Każdy krok oczekiwania skutecznie dzieli wykonanie procesu workflow na oddzielne bloki. Gdy proces workflow jest uruchomiony, automatycznie pobiera dane, które są wymagane do pierwszego kroku oczekiwania (oraz pobiera dane ponownie po kroku oczekiwania dla pozostałej części procesu workflow). Jeśli proces workflow używa wyzwalacza o wysokim wolumenie i pobiera wiele danych, ale będzie wykonywał czynności tylko sporadycznie, można wstawić wszelkie złożone dane lub logikę po parze kroków warunku i oczekiwania. Na przykład:
- Wyzwalacz: Zmieniono ilość zapasów wariantu produktu
- Warunek: Sprawdź czy produkt znajduje się w kolekcji
- Jeśli prawda, wykonaj czynność: Poczekaj 2 sekundy
- Czynność: Wyślij e-mail do klienta (z dużą ilością danych)
W tym przykładzie dane wymagane dla kroku 4 są odpytywane dopiero po zakończeniu kroku oczekiwania. Jeśli warunek jest zazwyczaj fałszywy, oznacza to, że proces workflow będzie działał szybciej i wydajniej.
Czego nie optymalizować
Używanie tych samych danych w wielu działaniach
W przypadku użycia tego samego pola w wielu krokach Flow analizuje wykorzystanie tych pól i pobiera te dane tylko raz. Oznacza to, że tych danych można używać dowolną liczbę razy, nie martwiąc się o wydajność.