Planowanie i uruchamianie cyklicznych przepływów pracy za pomocą wyzwalacza Recurrence w usłudze Azure Logic Apps

Dotyczy: Azure Logic Apps (Consumption + Standard)

Aby rozpocząć i uruchomić przepływ pracy zgodnie z harmonogramem, możesz użyć ogólnego wyzwalacza Powtarzanie jako pierwszego kroku. Możesz ustawić datę, godzinę i strefę czasową uruchamiania przepływu pracy oraz cykl powtarzania tego przepływu pracy. Poniższa lista zawiera pewne wzorce obsługiwane przez ten wyzwalacz wraz z bardziej zaawansowanymi cyklami i złożonymi harmonogramami:

  • Uruchom o określonej godzinie i dacie, a następnie powtarzaj co n sekund, minut, godzin, dni, tygodni lub miesięcy.

  • Uruchom natychmiast i powtarzaj co n sekund, minut, godzin, dni, tygodni lub miesięcy.

  • Uruchom natychmiast i powtarzaj codziennie o jednej lub kilku określonych godzinach, takich jak 8:00 i 17:00.

  • Uruchom natychmiast i powtarzaj co tydzień w wybrane dni, takie jak sobotę i niedzielę.

  • Uruchamiaj natychmiast i powtarzaj co tydzień w wybrane dni i o określonych godzinach, na przykład od poniedziałku do piątku o 8:00 i 17:00.

Note

Zaawansowane opcje planowania, takie jak W tych godzinach i W tych dniach, są dostępne i działają tylko z wbudowanymi wyzwalaczami sondowania, takimi jak wyzwalacze cykliczne i przesuwane okna , które są uruchamiane bezpośrednio przy użyciu środowiska uruchomieniowego usługi Azure Logic Apps. W przypadku łączników zarządzanych przez firmę Microsoft, hostowanych i uruchamianych na platformie Azure wyzwalacze sondowania obliczają następny cykl przy użyciu tylko wartości Interwał i Częstotliwość , a nie zaawansowane opcje planowania.

Wyzwalacz Powtarzanie nie jest skojarzony z żadną konkretną usługą, więc można go użyć z niemal każdym przepływem pracy, takim jak przepływy pracy aplikacji logiki typu Konsumpcja oraz standardowe przepływy pracy aplikacji logiki z obsługą stanu. Ten wyzwalacz jest obecnie niedostępny dla bezstanowych przepływów pracy aplikacji logiki w warstwie Standard.

Wyzwalacz Powtarzanie jest częścią wbudowanego łącznika harmonogramu i działa natywnie na platformie Azure Logic Apps. Aby uzyskać więcej informacji o wbudowanych wyzwalaczach i akcjach harmonogramu Schedule, zobacz artykuł Planowanie i uruchamianie cyklicznie wykonywanych zautomatyzowanych zadań i przepływów pracy za pomocą usługi Azure Logic Apps.

Prerequisites

Dodawanie wyzwalacza cyklu

W zależności od tego, czy Twój przepływ pracy to Consumption czy Standard, wykonaj odpowiednie kroki:

  1. W witrynie Azure portal otwórz zasób logiki aplikacji i pusty proces.

  2. Wykonaj następujące ogólne kroki, aby dodać wbudowany wyzwalacz Harmonogram o nazwie Cykliczność.

  3. Ustaw odstęp czasu i częstotliwość cyklu. W tym przykładzie ustaw te właściwości tak, aby uruchamiały przepływ pracy co tydzień, na przykład:

    Zrzut ekranu przedstawiający projektanta przepływu pracy Zużycie z interwałem i częstotliwością wyzwalacza cyklu.

    Property Nazwa JSON Required Typ Description
    Interval interval Yes Integer Dodatnia liczba całkowita, która określa, jak często przepływ pracy jest uruchamiany na podstawie częstotliwości. Poniżej przedstawiono minimalne i maksymalne interwały:

    - Miesiąc: 1–16 miesięcy
    - Tydzień: 1-71 tygodni
    - Dzień: 1–500 dni
    - Godzina: 1–12 000 godzin
    - Minuta: 1–72 000 minut
    - Drugi: 1-9,999,999 sekund

    Jeśli na przykład interwał wynosi 6, a częstotliwość to "Miesiąc", cykl jest co 6 miesięcy.
    Frequency frequency Yes String Jednostka czasu cyklu: Sekunda, Minuta, Godzina, Dzień, Tydzień lub Miesiąc

    Ważne: jeśli wybierzesz częstotliwość Dzień, Tydzień lub Miesiąc i określisz przyszłą datę i godzinę rozpoczęcia, upewnij się, że skonfigurowaliśmy cykl z wyprzedzeniem. W przeciwnym razie przepływ pracy może pominąć pierwszy cykl.

    - Dzień: skonfiguruj cykl dzienny co najmniej 24 godziny z wyprzedzeniem.

    - Tydzień: skonfiguruj cykl tygodniowy co najmniej 7 dni z wyprzedzeniem.

    - Miesiąc: skonfiguruj cykl miesięczny co najmniej jeden miesiąc z wyprzedzeniem.
    Strefa czasowa timeZone No String Ma zastosowanie tylko wtedy, gdy określisz godzinę rozpoczęcia, ponieważ ten wyzwalacz nie akceptuje przesunięcia UTC. Wybierz strefę czasową, którą chcesz zastosować. Aby uzyskać więcej informacji, zobacz Domyślne strefy czasowe.
    Godzina rozpoczęcia startTime No String Podaj datę i godzinę rozpoczęcia, która może przypadać maksymalnie 49 lat w przyszłości i musi być zgodna z specyfikacją daty i godziny ISO 8601 w formacie daty i godziny UTC, ale bez przesunięcia UTC:

    RRRR-MM-DDThh:mm:ss w przypadku wybrania strefy czasowej

    -or-

    RRRR-MM-DDThh:mm:ssZ, jeśli nie wybierzesz strefy czasowej

    Jeśli na przykład chcesz 18 września 2024 r. o 23:00, określ wartość "2024-09-18T8:00:00" i wybierz strefę czasową, taką jak Pacyficzny Czas standardowy. Możesz też określić "2024-09-18T8:00:00Z" bez strefy czasowej.

    Ważny: Jeśli nie wybierzesz strefy czasowej, musisz dodać literę "Z" na końcu bez spacji. To "Z" oznacza format czasu UTC z odchyleniem UTC. Jeśli wybierzesz wartość strefy czasowej, nie musisz dodawać wartości "Z" na końcu wartości godzina rozpoczęcia . Jeśli tak, usługa Azure Logic Apps ignoruje wartość strefy czasowej, ponieważ znak "Z" oznacza format czasu UTC.

    W przypadku prostych harmonogramów czas rozpoczęcia jest pierwszym wystąpieniem, podczas gdy w przypadku złożonych harmonogramów wyzwalacz nie jest uruchamiany wcześniej niż czas rozpoczęcia. Jakie są sposoby użycia daty i godziny rozpoczęcia?

    Dostępne są następujące właściwości w zależności od tego, czy wybrano pozycję Tydzień , czy Dzień:

    Property Nazwa JSON Required Typ Description
    W tych dniach weekDays No Ciąg lub tablica ciągów Jeśli wybierzesz pozycję Tydzień, możesz wybrać co najmniej jeden dzień, w którym chcesz uruchomić przepływ pracy: poniedziałek, wtorek, środa, czwartek, piątek, sobota i niedziela
    W tych godzinach hours No Liczba całkowita lub tablica liczb całkowitych W przypadku wybrania pozycji Dzień lub Tydzień możesz wybrać co najmniej jedną liczbę całkowitą z zakresu od 0 do 23 jako godziny dnia, dla których chcesz uruchomić przepływ pracy. Jeśli na przykład określisz 10, 12 i 14, otrzymasz 10:00, 12:00 i 23:00 przez godziny dnia.

    Uwaga: domyślnie minuty dnia są obliczane na podstawie momentu rozpoczęcia cyklu. Aby ustawić określone minuty dnia, na przykład 10:00, 12:00 i 2:00 PM, określ te wartości przy użyciu właściwości o nazwie W tych minutach.
    W tych minutach minutes No Liczba całkowita lub tablica liczb całkowitych W przypadku wybrania pozycji Dzień lub Tydzień możesz wybrać co najmniej jedną liczbę całkowitą z zakresu od 0 do 59 jako minuty godziny, kiedy chcesz uruchomić przepływ pracy.

    Na przykład możesz określić 30 jako znacznik minuty i użyć poprzedniego przykładu dla godzin dnia, otrzymasz 10:30, 12:30 i 23:30.

    Uwaga: Czasami znacznik czasu uruchomienia może się różnić od zaplanowanego czasu do 1 minuty. Jeśli musisz przekazać znacznik czasu dokładnie zgodnie z harmonogramem do kolejnych akcji, możesz użyć wyrażeń szablonu, aby odpowiednio zmienić znacznik czasu. Aby uzyskać więcej informacji, zobacz Funkcje daty i godziny dla wyrażeń.
  4. Przejrzyj następujące zagadnienia dotyczące korzystania z wyzwalacza Powtarzanie:

    • Jeśli nie określisz określonej daty i godziny rozpoczęcia, pierwszy cykl jest uruchamiany natychmiast po zapisaniu przepływu pracy lub wdrożeniu zasobu aplikacji logiki, pomimo konfiguracji cyklu wyzwalacza. Aby uniknąć tego zachowania, podaj datę i godzinę rozpoczęcia pierwszego cyklu do uruchomienia.

    • Jeśli nie określisz żadnych innych zaawansowanych opcji planowania, takich jak konkretne godziny uruchamiania przyszłych powtórzeń, te powtórzenia są wyznaczane na podstawie czasu ostatniego uruchomienia. W związku z tym godziny rozpoczęcia tych powtórzeń mogą się przesuwać z powodu takich czynników, jak opóźnienia podczas operacji zapisu.

    • Aby upewnić się, że przepływ pracy nie pominie żadnego wystąpienia, zwłaszcza gdy interwał jest określony w dniach lub dłuższy, rozważ następujące opcje:

      • Podaj datę i godzinę rozpoczęcia cyklu oraz określone czasy uruchamiania kolejnych cykli. Możesz użyć właściwości o nazwie W tych godzinach i W tych minutach, które są dostępne tylko dla częstotliwości Dzień i Tydzień .

      • W przypadku przepływów pracy aplikacji logiki w warstwie Consumption użyj wyzwalacza Okno przesuwne, a nie wyzwalacza Cykliczność.

    • Jeśli wdrożysz wyłączony przepływ pracy Consumption z wyzwalaczem Cykl przy użyciu szablonu ARM, wyzwalacz uruchamia się natychmiast po włączeniu przepływu pracy, chyba że przed wdrożeniem ustawiono parametr Godzina rozpoczęcia.

    Załóżmy na przykład, że dzisiaj jest to środa, 4 września 2024 r. Następujący wyzwalacz Cykliczność nie uruchamia się w żadnym wypadku wcześniej niż określona data i godzina rozpoczęcia, czyli środa, 18 września 2024 r. o 8:00 czasu Pacyficznego. Jednak harmonogram cyklu jest ustawiony tylko na 10:30, 12:30 i 2:30 w poniedziałki. Po raz pierwszy wyzwalacz uruchomi się i utworzy instancję przepływu pracy w poniedziałek o 10:30. Aby dowiedzieć się więcej o tym, jak działają godziny rozpoczęcia, zobacz przykłady godzin rozpoczęcia.

    Kolejne uruchomienia odbywają się o 12:30 i 14:30 tego samego dnia. Każde wystąpienie tworzy własne wystąpienie przepływu pracy. Następnie cały harmonogram powtarza się ponownie w najbliższy poniedziałek. Jakie są inne przykładowe wystąpienia?

    Zrzut ekranu przedstawia przepływ pracy w warstwie Zużycie oraz wyzwalacz cyklu z przykładem zaawansowanego harmonogramu.

    Note

    Wyzwalacz wyświetla podgląd określonego cyklu tylko wtedy, gdy wybierzesz opcję Dzień lub Tydzień jako częstotliwość.

  5. Teraz kontynuuj budowanie przepływu pracy za pomocą innych akcji.

Definicja przepływu pracy — cykl

Możesz zobaczyć, jak definicja wyzwalacza Cykliczność wygląda przy wybranych opcjach, przeglądając bazową definicję JSON przepływu pracy w aplikacjach logiki w warstwie Consumption oraz w aplikacjach logiki w warstwie Standard (tylko stanowych).

W zależności od tego, czy używasz aplikacji logiki w warstwie Consumption czy Standard, wybierz jedną z następujących opcji:

  • Użycie: Na pasku narzędzi projektanta wybierz Widok kodu. Aby powrócić do projektanta, na pasku narzędzi edytora widoku kodu wybierz pozycję Projektant.

  • Standardowa: w menu przepływu pracy wybierz pozycję Widok kodu. Aby powrócić do projektanta, w menu przepływu pracy wybierz pozycję Projektant.

W poniższym przykładzie pokazano, jak definicja wyzwalacza Recurrence może być wyświetlana w definicji JSON podstawowego przepływu pracy.

"triggers": {
   "Recurrence": {
      "type": "Recurrence",
      "recurrence": {
         "frequency": "Week",
         "interval": 1,
         "schedule": {
            "hours": [
               10,
               12,
               14
            ],
            "minutes": [
               30
            ],
            "weekDays": [
               "Monday"
            ]
         },
         "startTime": "2024-09-18T8:00:00Z",
         "timeZone": "Pacific Standard Time"
      }
   }
}

Note

W definicji wyzwalacza Powtarzalność właściwość evaluatedRecurrence jest wyświetlana wraz z właściwością recurrence gdy jakiekolwiek wyrażenie lub odwołanie do parametru pojawi się w kryteriach recursji. Ta evaluatedRecurrence właściwość określa wartości obliczone na podstawie wyrażenia lub odwołania do parametru. Jeśli kryteria powtarzania nie określają żadnych wyrażeń ani odwołań do parametrów, właściwości evaluatedRecurrence i recurrence są takie same.

W poniższym przykładzie pokazano, jak zaktualizować definicję wyzwalacza tak, aby wyzwalacz był uruchamiany tylko raz w ostatnim dniu każdego miesiąca:

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

Uruchom jeden raz w ostatnim dniu miesiąca

W tym zadaniu należy edytować wyzwalacz Powtarzanie w podstawowej definicji JSON przepływu pracy przy użyciu widoku kodu, a nie projektanta, korzystając z następującego przykładu.

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

Wyzwalanie zmiany i dryfu cyklu (czas letni)

Aby zaplanować zadania, usługa Azure Logic Apps umieszcza komunikat do przetwarzania w kolejce i określa, kiedy ten komunikat stanie się dostępny, na podstawie czasu UTC, kiedy ostatnie zadanie zostało uruchomione, a czas UTC, kiedy ma zostać uruchomione następne zadanie. Jeśli chcesz, aby wyzwalacz uhonorował czas letni (DST), upewnij się, że wybrano strefę czasową. W ten sposób czas UTC aplikacji logiki również ulega odpowiedniemu przesunięciu, aby skompensować sezonową zmianę czasu. Wyzwalacze cykliczne uznają ustawiony harmonogram, w tym dowolną określoną strefę czasową.

W przeciwnym wypadku, jeśli nie wybierzesz strefy czasowej, zmiany związane z czasem letnim (DST) mogą wpływać na czas uruchamiania wyzwalaczy. Na przykład godzina rozpoczęcia przesuwa się o jedną godzinę do przodu, gdy rozpoczyna się czas letni, i o jedną godzinę do tyłu, gdy czas letni się kończy. Jednak niektóre okna czasowe mogą powodować problemy, gdy czas się zmienia. Aby uzyskać więcej informacji i przykładów, zobacz Cykl czasu letniego i czasu standardowego.