Tło
Gdy arkusz kontrolny ma wiele wierszy lub czas procesu jest zbyt długi, użycie łańcuchów równoległych może znacznie skrócić czas działania.
Przykładowy scenariusz
Wyobraź sobie, że masz grupę poleceń w swoim łańcuchu, która używa Iteratora Grupy . W tej konfiguracji zawartość arkusza kontrolnego jest pobierana z arkusza kalkulacyjnego Workiva za pomocą polecenia Get Sheet Data. Następnie łańcuch powtarza zestaw działań dla każdego wiersza w arkuszu. (Zobacz instrukcje konfiguracji tutaj.)
Jeśli kolejność wykonywania wierszy arkusza kontrolnego nie ma znaczenia, a każdy wiersz może być przetwarzany niezależnie, możesz poprawić wydajność łańcucha, uruchamiając je równolegle, wykonując następujące kroki.
Uwaga: Poniższe kroki oparte są na przykładowym łańcuchu pokazanym powyżej. W razie potrzeby dostosuj łańcuch do własnych potrzeb i ewentualnych dodatkowych poleceń.
Krok 1: Przygotuj swój główny łańcuch
- Usuń wszystkie połączenia między wszystkimi węzłami.
- Usuń węzły CSV to JSON i Command Group.
- Dodaj polecenie Advanced Query z konektora Tabular Transformations i połącz je z węzłem Get Sheet Data.
- Skonfiguruj węzeł z następującymi wartościami:
- Tables > File: wybierz dane wyjściowe Get Sheet Data > Data z panelu zmiennych.
- Tabele > Nazwa tabeli: użyj nazwy bez spacji.
- Zapytanie: użyj funkcji MySQL
NTILEaby przypisać numer grupy do każdego wiersza (np.NTILE(3)dla trzech grup).
Uwaga: Musisz przetestować swój proces, aby znaleźć odpowiednią liczbę grup, która odpowiada pożądanemu czasowi działania. Najlepszą praktyką jest, aby liczba ta była mniejsza niż 10.
Krok 2: Skonfiguruj łańcuch podrzędny do pracy równoległej
- W podłańcuchu wykonywanym przez zdarzenie Run Chain dodaj lub zmień polecenie Runtime Inputs. Przypominamy, że ten musi być pierwszym węzłem łańcucha. Skonfiguruj dla niego dwa wejścia: jedno wejście FileField dla pliku danych i jedno wejście NumberField dla numeru grupy.
- Aby upewnić się, że każda instancja przetwarza tylko przypisane jej wiersze, połącz polecenie Filter Rows bezpośrednio po poleceniu Runtime Inputs i przed innymi poleceniami. Filtr wyizoluje rekordy według numeru grupy, zapewniając, że wszystkie kolejne polecenia będą działać tylko na właściwych wierszach.
Uwaga: Pole Kolumny wyszukiwania ma wartość 0.
- W Chain Settings upewnij się, że opcja Allow concurrent runs jest włączona.
Krok 3: Przejdź przez plik i numer grupy
- W łańcuchu podstawowym dodaj jedno polecenie Run Chain dla każdego numeru grupy używanego w funkcji
NTILE(np. 3 polecenia dlaNTILE(3)).- Data File Runtime Input: wybierz Advanced Query > Result output z panelu Variable.
- Group Number (Numer grupy) Runtime Input (Dane wejściowe): Unikalny numer od 1 do całkowitej liczby grup.
Wynik
Twój łańcuch przetwarza teraz trzy razy więcej wierszy z arkusza kontrolnego jednocześnie. Możesz skalować to dalej, zwiększając liczbę NTILE i dodając odpowiednie polecenia Run Chain.
Ostrzeżenie
- Unikaj uruchamiania zbyt wielu równoległych łańcuchów jednocześnie, ponieważ może to przekroczyć limity platformy i spowodować niepowodzenie poleceń. Najlepszą praktyką jest, aby liczba równoległych łańcuchów była mniejsza niż 10.
- Wszystkie rozwiązania łańcuchowe powinny być dokładnie przetestowane pod kątem przypadków brzegowych i wszystkich odpowiednich typów danych przed ich użyciem w środowiskach rzeczywistych lub produkcyjnych.
- Łańcuchy z więcej niż sześcioma zagnieżdżonymi poziomami użycia Run Chain mogą nie być poprawnie eksportowane lub importowane.
Dodatkowe zasoby
Aby uzyskać więcej informacji na temat arkuszy kontroli łańcucha, zapoznaj się z naszymi innymi zasobami
- Aby uzyskać więcej podstawowych informacji, zapoznaj się z naszym Korzystanie z arkuszy kontrolnych.
- Aby zapoznać się z popularnymi przypadkami użycia arkuszy kontrolnych, przejrzyj nasz szablon Control Sheet Scheduler Chain.