Schemalägga och köra återkommande arbetsflöden med upprepningsutlösaren i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

Om du vill starta och köra arbetsflödet enligt ett schema kan du använda den allmänna upprepningsutlösaren som första steg. Du kan ange en datum-, tids- och tidszon för att starta arbetsflödet och en upprepning för att upprepa arbetsflödet. Följande lista innehåller några mönster som den här utlösaren stöder tillsammans med mer avancerade upprepningar och komplexa scheman:

  • Kör vid ett visst datum och en viss tid och upprepa sedan varje n antal sekunder, minuter, timmar, dagar, veckor eller månader.

  • Kör omedelbart och upprepa varje n antal sekunder, minuter, timmar, dagar, veckor eller månader.

  • Kör omedelbart och upprepa dagligen vid en eller flera specifika tidpunkter, till exempel 08:00 och 17:00.

  • Kör omedelbart och upprepa varje vecka på specifika dagar, till exempel lördag och söndag.

  • Kör omedelbart och upprepa varje vecka på specifika dagar och tider, till exempel måndag till fredag kl. 08:00 och 17:00.

Kommentar

Om du bara vill starta och köra arbetsflödet en gång i framtiden använder du arbetsflödesmallen Scheduler: Kör när jobb. Den här mallen använder utlösaren Förfrågning och HTTP i stället för upprepningsutlösaren, som inte stöder det här upprepningsmönstret. Mer information finns i Kör jobb endast en gång.

Upprepningsutlösaren är inte associerad med någon specifik tjänst, så du kan använda utlösaren med nästan alla arbetsflöden, till exempel arbetsflöden för förbrukningslogikappen och tillståndskänsliga arbetsflöden för standardlogikappen. Den här utlösaren är för närvarande inte tillgänglig för tillståndslösa arbetsflöden för standardlogikappen.

Upprepningsutlösaren är en del av den inbyggda schemaanslutningen och körs internt på Azure Logic Apps-körningen. Mer information om inbyggda schemautlösare och åtgärder finns i Schemalägga och köra återkommande automatiserade uppgifter, uppgifter och arbetsflöden med Azure Logic Apps.

Förutsättningar

  • Ett Azure-konto och prenumeration. Om du inte har någon prenumeration kan du registrera ett kostnadsfritt Azure-konto.

  • En förbruknings- eller standardlogikappresurs med ett tomt arbetsflöde.

    Kommentar

    Om du har skapat ett arbetsflöde för standardlogikappen måste du skapa ett tillståndskänsligt arbetsflöde. Upprepningsutlösaren är för närvarande inte tillgänglig för tillståndslösa arbetsflöden.

Lägg till upprepningsutlösaren

Baserat på om arbetsflödet är Förbrukning eller Standard följer du motsvarande steg:

  1. Öppna logikappresursen och det tomma arbetsflödet i Azure-portalen.

  2. Följ de här allmänna stegen för att lägga till den inbyggda utlösaren Schema med namnet Återkommande.

  3. Ange intervall och frekvens för upprepningen. I det här exemplet anger du dessa egenskaper för att köra arbetsflödet varje vecka, till exempel:

    Screenshot for Consumption workflow designer with Recurrence trigger interval and frequency.

    Property JSON-namn Obligatoriskt Type Description
    Intervall interval Ja Integer Ett positivt heltal som beskriver hur ofta arbetsflödet körs baserat på frekvensen. Här är de minsta och högsta intervallen:

    - Månad: 1–16 månader
    - Vecka: 1-71 veckor
    - Dag: 1–500 dagar
    - Timme: 1-12 000 timmar
    - Minut: 1-72 000 minuter
    - Andra: 1-9,999,999 sekunder

    Om intervallet till exempel är 6 och frekvensen är "Månad" är upprepningen var 6:e månad.
    Frekvens frequency Ja String Tidsenhet för upprepningen: Second, Minute, Hour, Day, Week eller Month

    Viktigt: Om du väljer frekvensen Dag, Vecka eller Månad och anger ett framtida startdatum och en framtida starttid kontrollerar du att du konfigurerar upprepningen i förväg. Annars kan arbetsflödet hoppa över den första upprepningen.

    - Dag: Konfigurera den dagliga upprepningen minst 24 timmar i förväg.

    - Vecka: Konfigurera veckovis upprepning minst 7 dagar i förväg.

    - Månad: Konfigurera månatlig upprepning minst en månad i förväg.
  4. Granska följande överväganden när du använder upprepningsutlösaren :

    • Om du inte anger ett specifikt startdatum och tid körs den första upprepningen omedelbart när du sparar arbetsflödet eller distribuerar logikappresursen, trots utlösarens upprepningskonfiguration. Undvik det här beteendet genom att ange ett startdatum och en tidpunkt för när du vill att den första upprepningen ska köras.

    • Om du inte anger några andra avancerade schemaläggningsalternativ, till exempel specifika tider för att köra framtida upprepningar, baseras dessa upprepningar på den senaste körningstiden. Därför kan starttiderna för dessa upprepningar påverkas på grund av faktorer som svarstid under lagringsanrop.

    • Prova följande alternativ för att se till att arbetsflödet inte missar en upprepning, särskilt när frekvensen är i dagar eller längre:

      • Ange ett startdatum och en tid för upprepningen och de specifika tidpunkter då efterföljande upprepningar ska köras. Du kan använda egenskaperna med namnet At these hours och At these minutes, som endast är tillgängliga för frekvenserna Dag och Vecka .

      • För arbetsflöden för förbrukningslogikapp använder du utlösaren Glidande fönster i stället för upprepningsutlösaren.

    • Om du distribuerar ett inaktiverat förbrukningsarbetsflöde som har en upprepningsutlösare med hjälp av en ARM-mall utlöses utlösaren omedelbart när du aktiverar arbetsflödet om du inte anger parametern Starttid före distributionen.

  5. Om du vill ange avancerade schemaläggningsalternativ öppnar du listan Lägg till ny parameter . Alla alternativ som du väljer visas på utlösaren efter markeringen.

    Property JSON-namn Obligatoriskt Type Description
    Tidszon timeZone Inga String Gäller endast när du anger en starttid eftersom den här utlösaren inte accepterar UTC-förskjutning. Välj den tidszon som du vill använda.
    Starttid startTime Inga String Ange ett startdatum och en tid som har högst 49 år i framtiden och som måste följa ISO 8601-datumtidsspecifikationen i UTC-datumtidsformat, men utan UTC-förskjutning:

    ÅÅÅÅ-MM-DDThh:mm:ss om du väljer en tidszon

    -Eller-

    ÅÅÅÅ-MM-DDThh:mm:ssZ om du inte väljer en tidszon

    Om du till exempel vill ha 18 september 2020 kl. 14:00 anger du "2020-09-18T14:00:00" och väljer en tidszon som Pacific Standard Time. Eller ange "2020-09-18T14:00:00Z" utan tidszon.

    Viktigt: Om du inte väljer en tidszon måste du lägga till bokstaven "Z" i slutet utan blanksteg. Detta "Z" avser motsvarande nautiska tid. Om du väljer ett tidszonsvärde behöver du inte lägga till ett "Z" i slutet av starttidsvärdet. Om du gör det ignorerar Logic Apps tidszonsvärdet eftersom "Z" betyder ett UTC-tidsformat.

    För enkla scheman är starttiden den första förekomsten, medan utlösaren för komplexa scheman inte utlöses tidigare än starttiden. Hur kan jag använda startdatum och -tid?
    Dessa dagar weekDays Inga Sträng- eller strängmatris Om du väljer "Vecka" kan du välja en eller flera dagar när du vill köra arbetsflödet: måndag, tisdag, onsdag, torsdag, fredag, lördag och söndag
    Vid dessa timmar hours Inga Heltals- eller heltalsmatris Om du väljer "Dag" eller "Vecka" kan du välja ett eller flera heltal mellan 0 och 23 som dagens timmar för när du vill köra arbetsflödet. Om du till exempel anger "10", "12" och "14" får du 10 AM, 12 PM och 2 PM för dagens timmar.

    Obs! Som standard beräknas dagens minuter baserat på när upprepningen startar. Om du vill ange specifika minuter på dagen, till exempel 10:00, 12:00 och 14:00, anger du dessa värden med hjälp av egenskapen Med namnet Vid dessa minuter.
    Vid dessa minuter minutes Inga Heltals- eller heltalsmatris Om du väljer "Dag" eller "Vecka" kan du välja ett eller flera heltal från 0 till 59 som minuter i timmen när du vill köra arbetsflödet.

    Du kan till exempel ange "30" som minutmarkering och med föregående exempel för timmar på dagen får du 10:30, 12:30 OCH 14:30.

    Obs! Ibland kan tidsstämpeln för den utlösta körningen variera upp till 1 minut från den schemalagda tiden. Om du behöver skicka tidsstämpeln exakt som schemalagt till efterföljande åtgärder kan du använda malluttryck för att ändra tidsstämpeln i enlighet med detta. Mer information finns i Datum- och tidsfunktioner för uttryck.

    Screenshot for Consumption workflow designer and Recurrence trigger with advanced scheduling options.

    Anta till exempel att i dag är fredagen den 4 september 2020. Följande upprepningsutlösare utlöses inte tidigare än det angivna startdatumet och tidpunkten, som är fredagen den 18 september 2020 kl. 08:00 Stillahavstid. Upprepningsschemat är dock inställt på 10:30, 12:30 och 14:30 endast på måndagar. Första gången utlösaren utlöses och skapar en arbetsflödesinstans är på måndag kl. 10:30. Mer information om hur starttider fungerar finns i de här starttidsexemplen.

    Framtida körningar sker kl. 12:30 och 14:30 samma dag. Varje upprepning skapar en egen arbetsflödesinstans. Därefter upprepas hela schemat igen nästa måndag. Vilka är några andra exempel på förekomster?

    Screenshot showing Consumption workflow and Recurrence trigger with advanced scheduling example.

    Kommentar

    Utlösaren visar bara en förhandsgranskning för den angivna upprepningen när du väljer Dag eller Vecka som frekvens.

  6. Fortsätt nu att skapa arbetsflödet med andra åtgärder.

Arbetsflödesdefinition – upprepning

Du kan visa hur definitionen av upprepningsutlösaren visas med de alternativ du har valt genom att granska den underliggande JSON-definitionen för ditt arbetsflöde i Förbrukningslogikappar och Standard-logikappar (endast tillståndskänsliga).

Baserat på om logikappen är Förbrukning eller Standard väljer du något av följande alternativ:

  • Förbrukning: Välj Kodvy i designerverktygsfältet. Gå tillbaka till designern genom att välja Designer i verktygsfältet för kodvisningsredigeraren.

  • Standard: Välj Kodvy på arbetsflödesmenyn. Om du vill återgå till designern går du till arbetsflödesmenyn och väljer Designer.

I följande exempel visas hur en definition för upprepningsutlösare kan visas i arbetsflödets underliggande JSON-definition:

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

Kommentar

I definitionen evaluatedRecurrence för upprepningsutlösare visas egenskapen tillsammans med recurrence egenskapen när någon uttrycks- eller parameterreferens visas i upprepningsvillkoren. Den här evaluatedRecurrence egenskapen representerar de utvärderade värdena från uttrycket eller parameterreferensen. Om upprepningskriterierna inte anger några uttryck eller parameterreferenser evaluatedRecurrence är egenskaperna och recurrence desamma.

I följande exempel visas hur du uppdaterar utlösardefinitionen så att utlösaren bara körs en gång den sista dagen i varje månad:

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

Utlösa upprepningsförskjutning och drift (sommartid)

För att schemalägga jobb placerar Azure Logic Apps meddelandet för bearbetning i kön och anger när meddelandet blir tillgängligt, baserat på UTC-tiden när det senaste jobbet kördes och UTC-tiden när nästa jobb är schemalagt att köras. Om du anger en starttid med upprepningen kontrollerar du att du väljer en tidszon så att logikappens arbetsflöde körs vid den angivna starttiden. På så sätt övergår ÄVEN UTC-tiden för logikappen för att motverka säsongsändringen. Återkommande utlösare respekterar det schema som du anger, inklusive alla tidszoner som du anger.

Om du inte väljer en tidszon kan sommartidshändelser (DST) påverkas när utlösare körs. Starttiden skiftar till exempel en timme framåt när DST startar och en timme bakåt när DST slutar. Vissa tidsfönster kan dock orsaka problem när tiden skiftar. Mer information och exempel finns i Återkommande för sommartid och standardtid.

Nästa steg