Schemalägg och kör återkommande automatiserade uppgifter, processer och arbetsflöden med Azure Logic Apps
Logic Apps hjälper dig att skapa och köra automatiserade återkommande uppgifter och processer enligt ett schema. Genom att skapa ett logikapparbetsflöde som börjar med en inbyggd upprepningsutlösare eller utlösare för skjutfönster, som är utlösare av schematyp, kan du köra aktiviteter omedelbart, vid ett senare tillfälle eller med ett återkommande intervall. Du kan anropa tjänster i och utanför Azure, till exempel HTTP- eller HTTPS-slutpunkter, skicka meddelanden till Azure-tjänster som Azure Storage och Azure Service Bus eller hämta filer som laddats upp till en filresurs. Med upprepningsutlösaren kan du också konfigurera komplexa scheman och avancerade upprepningar för att köra uppgifter. Mer information om inbyggda schemautlösare och åtgärder finns i Schemautlösare och Schemalägg åtgärder.
Tips
Du kan schemalägga och köra återkommande arbetsbelastningar utan att skapa en separat logikapp för varje schemalagt jobb och köra i gränsen för arbetsflöden per region och prenumeration. I stället kan du använda logikappmönstret som skapas av Azure-snabbstartsmallen: Logic Apps jobbschema.
Mallen Logic Apps skapar en CreateTimerJob-logikapp som anropar en logikapp för TimerJob. Du kan sedan anropa logikappen CreateTimerJob som ett API genom att göra en HTTP-begäran och skicka ett schema som indata för begäran. Varje anrop till logikappen CreateTimerJob anropar också logikappen TimerJob, som skapar en ny TimerJob-instans som kontinuerligt körs baserat på det angivna schemat eller tills den uppfyller en angiven gräns. På så sätt kan du köra så många TimerJob-instanser som du vill utan att behöva bekymra dig om arbetsflödesgränser eftersom instanser inte är enskilda definitioner eller resurser för logikapparbetsflöden.
Den här listan visar några exempeluppgifter som du kan köra med de inbyggda utlösarna Schema:
Hämta interna data, till exempel köra en SQL lagrad procedur varje dag.
Hämta externa data, till exempel hämta väderrapporter från NOAA var 15:e minut.
Skicka rapportdata, till exempel e-post, en sammanfattning för alla beställningar större än en viss mängd under den senaste veckan.
Bearbeta data, till exempel komprimera dagens uppladdade bilder varje veckodag vid låg belastning.
Rensa data, till exempel ta bort alla tweets som är äldre än tre månader.
Arkivera data, till exempel push-fakturor till en säkerhetskopieringstjänst kl. 01:00 varje dag under de kommande nio månaderna.
Du kan också använda de inbyggda åtgärderna Schema för att pausa arbetsflödet innan nästa åtgärd körs, till exempel:
Vänta tills en veckodag skickar en statusuppdatering via e-post.
Fördröj arbetsflödet tills ett HTTP-anrop har tid att slutföras innan du återupptar och hämtar resultatet.
I den här artikeln beskrivs funktionerna för de inbyggda utlösare och åtgärder som schemaläggs.
Schemautlösare
Du kan starta logikappens arbetsflöde med hjälp av upprepningsutlösaren eller skjutfönsterutlösaren, som inte är associerad med någon specifik tjänst eller ett specifikt system. Dessa utlösare startar och kör arbetsflödet baserat på din angivna upprepning där du väljer intervall och frekvens, till exempel antal sekunder, minuter, timmar, dagar, veckor eller månader. Du kan också ange startdatum och tid tillsammans med tidszonen. Varje gång en utlösare utlöses skapar Logic Apps kör en ny arbetsflödesinstans för logikappen.
Här är skillnaderna mellan dessa utlösare:
Upprepning: Kör arbetsflödet med jämna mellanrum baserat på ditt angivna schema. Om utlösaren missar upprepningar, till exempel på grund av avbrott eller inaktiverade arbetsflöden, bearbetar inte upprepningsutlösaren de missade upprepningarna utan startar om upprepningar med nästa schemalagda intervall.
Om du väljer Dag som frekvens kan du ange dygnets timmar och minuter i timmen, till exempel varje dag kl. 02:30. Om du väljer Vecka som frekvens kan du även välja veckodagar, till exempel onsdag och lördag. Du kan också ange ett startdatum och en tid tillsammans med en tidszon för upprepningsschemat.
Tips
Om en upprepning inte anger ett visst startdatumoch en viss tid körs den första upprepningen omedelbart när du sparar eller distribuerar logikappen, trots utlösarens upprepningsinställning. För att undvika det här beteendet anger du ett startdatum och en tid för när du vill att den första upprepningen ska köras.
Om en upprepning 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 av glida på grund av faktorer som svarstid under lagringsanrop. Prova följande alternativ för att se till att logikappen inte missar en upprepning, särskilt när frekvensen är i dagar eller längre:
Ange startdatum och -tid för upprepningen plus de specifika tidpunkter då efterföljande upprepningar ska köras med hjälp av egenskaperna At these hours (Vid dessa timmar) och At these minutes(På dessa minuter) som endast är tillgängliga för dag- och veckofrekvenserna.
Använd skjutfönsterutlösareni stället för upprepningsutlösaren.
Mer information finns i Skapa, schemalägga och köra återkommande uppgifter och arbetsflöden med upprepningsutlösaren.
Skjutfönster: Kör arbetsflödet med jämna mellanrum som hanterar data i kontinuerliga segment. Om utlösaren missar upprepningar, till exempel på grund av avbrott eller inaktiverade arbetsflöden, går utlösaren för skjutfönster tillbaka och bearbetar de missade upprepningarna.
Du kan ange startdatum och starttid, tidszon och en varaktighet för att fördröja varje upprepning i arbetsflödet. Den här utlösaren stöder inte avancerade scheman, till exempel specifika timmar på dagen, minuter i timmen och veckodagar. Mer information finns i Skapa, schemalägga och köra återkommande uppgifter och arbetsflöden med skjutfönsterutlösaren.
Schemalägg åtgärder
Efter en åtgärd i logikappens arbetsflöde kan du använda åtgärderna Delay (Fördröjning) och Delay Until (Fördröjning till) för att få arbetsflödet att vänta innan nästa åtgärd körs.
Fördröjning: Vänta tills nästa åtgärd körs för det angivna antalet tidsenheter, till exempel sekunder, minuter, timmar, dagar, veckor eller månader. Mer information finns i Fördröj nästa åtgärd i arbetsflöden.
Fördröj tills : Vänta med att köra nästa åtgärd tills det angivna datumet och den angivna tiden. Mer information finns i Fördröj nästa åtgärd i arbetsflöden.
Mönster för startdatum och -tid
Här är några mönster som visar hur du kan styra upprepningen med startdatum och tid och hur Logic Apps-tjänsten kör dessa upprepningar:
| Starttid | Upprepning utan schema | Upprepning med schema (endast upprepningsutlösare) |
|---|---|---|
| {none} | Kör den första arbetsbelastningen direkt. Kör framtida arbetsbelastningar baserat på den senaste körningstiden. |
Kör den första arbetsbelastningen direkt. Kör framtida arbetsbelastningar baserat på det angivna schemat. |
| Starttid tidigare | Upprepningsutlösare: Beräknar körningstider baserat på den angivna starttiden och tar bort tidigare körningstider. Kör den första arbetsbelastningen vid nästa framtida körning. Kör framtida arbetsbelastningar baserat på den senaste körningstiden. Skjutfönsterutlösare: Beräknar körningstider baserat på den angivna starttiden och respekterar tidigare körningstider. Kör framtida arbetsbelastningar baserat på den angivna starttiden. Mer förklaring finns i exemplet efter den här tabellen. |
Kör den första arbetsbelastningen tidigast starttiden, baserat på schemat som beräknas från starttiden. Kör framtida arbetsbelastningar baserat på det angivna schemat. Obs! Om du anger en upprepning med ett schema, men inte anger timmar eller minuter för schemat, beräknar Logic Apps framtida körningstider med hjälp av timmar respektive minuter från den första körningstiden. |
| Starttid nu eller i framtiden | Kör den första arbetsbelastningen vid den angivna starttiden. Upprepningsutlösare: Kör framtida arbetsbelastningar baserat på den senaste körningstiden. Skjutfönsterutlösare: Kör framtida arbetsbelastningar baserat på den angivna starttiden. |
Kör den första arbetsbelastningen tidigast starttiden, baserat på schemat som beräknas från starttiden. Kör framtida arbetsbelastningar baserat på det angivna schemat. Obs! Om du anger en upprepning med ett schema, men inte anger timmar eller minuter för schemat, beräknar Logic Apps framtida körningstider med hjälp av timmar respektive minuter från den första körningstiden. |
Exempel för tidigare starttid och upprepning men inget schema
Anta att aktuellt datum och tid är 8 september 2017 kl. 13:00. Du anger startdatumet och startdatumet som den 7 september 2017 kl. 14:00, vilket är tidigare och en upprepning som körs varannan dag.
| Starttid | Aktuell tid | Upprepning | Schema |
|---|---|---|---|
| 2017-09-07 T14:00:00Z (2017-09-07 kl. 14:00) |
2017-09-08 T13:00:00Z (2017-09-08 kl. 13:00) |
Varannan dag | {none} |
För upprepningsutlösaren beräknar Logic Apps-motorn körningstider baserat på starttiden, tar bort tidigare körningstider, använder nästa framtida starttid för den första körningen och beräknar framtida körningar baserat på den senaste körningstiden.
Så här ser upprepningen ut:
| Starttid | Första körningstiden | Framtida körningstider |
|---|---|---|
| 2017-09-07 kl. 14:00 | 2017-09-09 kl. 14:00 | 2017-09-11 kl. 14:00 2017-09-13 kl. 14:00 2017-09-15 kl. 14:00 och så vidare... |
Så oavsett hur långt i det förflutna du anger starttiden, till exempel 2017-09-05 kl. 14:00 eller 2017-09-01 kl.14:00, använder din första körning alltid nästa framtida starttid.
För skjutfönsterutlösaren beräknar Logic Apps-motorn körningstider baserat på starttiden, respekterar tidigare körningstider, använder starttiden för den första körningen och beräknar framtida körningar baserat på starttiden.
Så här ser upprepningen ut:
| Starttid | Första körningstiden | Framtida körningstider |
|---|---|---|
| 2017-09-07 kl. 14:00 | 2017-09-08 kl. 13:00 (aktuell tid) | 2017-09-09 kl. 14:00 2017-09-11 kl. 14:00 2017-09-13 kl. 14:00 2017-09-15 kl. 14:00 och så vidare... |
Oavsett hur långt i det förflutna du anger starttiden, till exempel 2017-09-05 kl. 14:00 eller 2017-09-01 kl.14:00, använder din första körning alltid den angivna starttiden.
Upprepning för sommartid och standardtid
Återkommande inbyggda utlösare respekterar det schema som du anger, inklusive de tidszoner som du anger. Om du inte väljer en tidszon kan sommartid (DST) påverka när utlösare körs, till exempel att växla starttiden en timme framåt när DST startar och en timme bakåt när DST slutar. När du schemalägger jobb Logic Apps placerar meddelandet för bearbetning i kön och anger när meddelandet blir tillgängligt, baserat på den UTC-tid då det senaste jobbet kördes och UTC-tiden när nästa jobb schemaläggs att köras.
Se till att du väljer en tidszon för att undvika skiftet så att logikappen körs vid den angivna starttiden. På så sätt ändras ÄVEN LOGIKappens UTC-tid för att motverka den säsongsbaserade tidsändringen.
Anteckning
Utlösare som startar mellan 02.00 och 03.00 kan ha problem eftersom DST-ändringar inträffar kl. 02:00, vilket kan göra att starttiden blir ogiltig eller tvetydig. Om du har flera logikappar inom samma tvetydiga intervall kan de överlappa varandra. Därför kanske du vill undvika starttider mellan 02.00 och 03.00.
Anta till exempel att du har två logikappar som körs dagligen. En logikapp körs kl. 01:30 lokal tid, medan den andra körs en timme senare kl. 02:30 lokal tid. Vad händer med starttiderna för dessa appar när DST startar och slutar?
Körs utlösarna alls när tiden flyttas en timme framåt?
Körs utlösarna två gånger när tiden flyttas en timme bakåt?
Om de här logikapparna använder zonen UTC-6:00 Central Time (USA & Canada) visar den här simuleringen hur UTC-tiderna skiftade under 2019 för att beräkna DST-ändringarna, och flyttar en timme bakåt eller framåt efter behov så att apparna fortsätter att köras vid förväntade lokala tidpunkter utan överhoppade eller duplicerade körningar.
2019-03-10: DST startar kl. 02:00, och växlar tid en timme framåt
För att kompensera efter att DST startar flyttas UTC-tiden en timme bakåt så att logikappen fortsätter att köras samtidigt som den är lokal:
Logikapps-#1
Datum Tid (lokal) Tid (UTC) Kommentarer 03/09/2019 01:30:00 07:30:00 UTC före den dag då DST börjar gälla. 03/10/2019 01:30:00 07:30:00 UTC är detsamma eftersom DST inte har börjat gälla. 03/11/2019 01:30:00 06:30:00 UTC växlade en timme bakåt efter att DST hade gälla. Logikapps-#2
Datum Tid (lokal) Tid (UTC) Kommentarer 03/09/2019 02:30:00 08:30:00 UTC före den dag då DST börjar gälla. 03/10/2019 03:30:00* 08:30:00 DST används redan, så lokal tid har flyttats en timme framåt eftersom tidszonen UTC-6:00 ändras till UTC-5:00. Mer information finns i Utlösare som startar mellan 02.00–03.00. 03/11/2019 02:30:00 07:30:00 UTC växlade en timme bakåt efter att DST hade gälla.
2019-01-03: DST slutar kl. 02:00 och skiftar en timme bakåt
För att kompensera flyttas UTC-tiden en timme framåt så att logikappen fortsätter att köras samtidigt som den är lokal:
Logikapps-#1
Datum Tid (lokal) Tid (UTC) Kommentarer 11/02/2019 01:30:00 06:30:00 11/03/2019 01:30:00 06:30:00 11/04/2019 01:30:00 07:30:00 Logikapps-#2
Datum Tid (lokal) Tid (UTC) Kommentarer 11/02/2019 02:30:00 07:30:00 11/03/2019 02:30:00 08:30:00 11/04/2019 02:30:00 08:30:00
Kör endast en gång
Om du bara vill köra logikappen en gång i framtiden kan du använda mallen Scheduler: Run once jobs (Schemaläggaren: Kör en gång-jobb). När du har skapat en ny logikapp men innan du öppnar Logic Apps Designer går du till avsnittet Mallar och väljer Schema i listan Kategori och väljer sedan den här mallen:

Eller om du kan starta logikappen med utlösaren When a HTTP request is received - Request (När en HTTP-begäran tas emot) och skicka starttiden som en parameter för utlösaren. För den första åtgärden använder du åtgärden Fördröj tills – Schemalägg och anger tiden för när nästa åtgärd börjar köras.
Kör en gång den sista dagen i månaden
Om du bara vill köra upprepningsutlösaren en gång den sista dagen i månaden måste du redigera utlösaren i arbetsflödets underliggande JSON-definition med hjälp av kodvyn, inte designern. Du kan dock använda följande exempel:
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Month",
"interval": 1,
"schedule": {
"monthDays": [-1]
}
},
"type": "Recurrence"
}
}
Exempel på upprepningar
Här är olika exempel på upprepningar som du kan ställa in för de utlösare som stöder alternativen:
| Utlösare | Upprepning | Intervall | Frekvens | Starttid | Dessa dagar | Vid dessa timmar | Vid dessa minuter | Anteckning |
|---|---|---|---|---|---|---|---|---|
| Återkommande Skjutfönster |
Körs var 15:e minut (inget startdatum och ingen tid) | 15 | Minut | {none} | {unavailable} | {none} | {none} | Det här schemat startar omedelbart och beräknar sedan framtida upprepningar baserat på den senaste körningstiden. |
| Återkommande Skjutfönster |
Körs var 15:e minut (med startdatum och -tid) | 15 | Minut | startDate T startTime Z | {unavailable} | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och startdatumet och beräknar sedan framtida upprepningar baserat på den senaste körningstiden. |
| Återkommande Skjutfönster |
Körs varje timme, per timme (med startdatum och -tid) | 1 | Tid | startDate Thh:00:00Z | {unavailable} | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och starttiden. Framtida upprepningar körs varje timme med 00-minutersmarkeringen, Logic Apps beräknar från starttiden. Om frekvensen är "Vecka" eller "Månad" körs schemat bara en dag per vecka eller en dag per månad. |
| Återkommande Skjutfönster |
Körs varje timme, varje dag (inget startdatum och ingen tid) | 1 | Tid | {none} | {unavailable} | {none} | {none} | Det här schemat startar omedelbart och beräknar framtida upprepningar baserat på den senaste körningstiden. Om frekvensen är "Vecka" eller "Månad" körs schemat bara en dag per vecka eller en dag per månad. |
| Återkommande Skjutfönster |
Körs varje timme, varje dag (med startdatum och -tid) | 1 | Tid | startDate T startTime Z | {unavailable} | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och startdatumet och beräknar sedan framtida upprepningar baserat på den senaste körningstiden. Om frekvensen är "Vecka" eller "Månad" körs schemat bara en dag per vecka eller en dag per månad. |
| Återkommande Skjutfönster |
Körs var 15:e minut efter timmen, varje timme (med startdatum och -tid) | 1 | Tid | startDate T00:15:00Z | {unavailable} | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och starttiden. Framtida upprepningar körs med 15-minutersmarkeringen, som Logic Apps beräknar från starttiden, så kl. 00:15, 01:15, 02:15 och så vidare. |
| Upprepning | Körs var 15:e minut efter timmen, varje timme (inget startdatum och ingen starttid) | 1 | Dag | {none} | {unavailable} | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 | 15 | Det här schemat körs 00.15, 01.15, 02.15 och så vidare. Det här schemat motsvarar dessutom en frekvens på "Timme" och en starttid med "15" minuter. |
| Upprepning | Kör var 15:e minut vid de angivna minutmarkeringarna (inget startdatum och ingen starttid). | 1 | Dag | {none} | {unavailable} | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 | 0, 15, 30, 45 | Det här schemat startar inte förrän nästa angivna 15-minutersmarkering. |
| Upprepning | Körs dagligen kl. 08:00 plus minutmarkeringen från när du sparar logikappen | 1 | Dag | {none} | {unavailable} | 8 | {none} | Utan startdatum och starttid körs det här schemat baserat på den tid då du sparar logikappen (PUT-åtgärden). |
| Upprepning | Körs dagligen 08:00 (med startdatum och -tid) | 1 | Dag | startDate T08:00:00Z | {unavailable} | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och starttiden. Framtida förekomster körs dagligen kl. 08:00. |
| Upprepning | Körs dagligen kl. 08:00 (inget startdatum och ingen tid) | 1 | Dag | {none} | {unavailable} | 8 | 00 | Det här schemat körs 08:00 varje dag. |
| Upprepning | Körs dagligen 08:00 och 16:00 | 1 | Dag | {none} | {unavailable} | 8, 16 | 0 | |
| Upprepning | Körs dagligen 08.30, 08.45, 16.30 och 16.45 | 1 | Dag | {none} | {unavailable} | 8, 16 | 30, 45 | |
| Upprepning | Körs varje lördag kl. 17:00 (inget startdatum och ingen tid) | 1 | Vecka | {none} | "Lördag" | 17 | 0 | Det här schemat körs varje lördag kl. 17:00. |
| Upprepning | Körs varje lördag kl. 17:00 (med startdatum och -tid) | 1 | Vecka | startDate T17:00:00Z | "Lördag" | {none} | {none} | Det här schemat startar inte tidigare än det angivna startdatumet och startdatumet, i det här fallet den 9 september 2017 kl. 17:00. Framtida upprepningar körs varje lördag kl. 17:00. |
| Upprepning | Kör varje tisdag, torsdag kl. 17 plus minutmarkeringen från när du sparar logikappen | 1 | Vecka | {none} | "Tisdag", "torsdag" | 17 | {none} | |
| Upprepning | Körs varje timme under arbetstid. | 1 | Vecka | {none} | Välj alla dagar utom lördag och söndag. | Välj de timmar på dagen som du vill ha. | Välj valfria minuter i timmen. | Om din arbetstid till exempel är 8:00 till 17:00 väljer du "8, 9, 10, 11, 12, 13, 14, 15, 16, 17" som timmar på dagen plus "0" som minuter i timmen. |
| Upprepning | Kör en gång varje dag på helger | 1 | Vecka | {none} | "Saturday", "Sunday" | Välj de timmar på dagen som du vill ha. | Välj valfria minuter i timmen efter behov. | Det här schemat körs varje lördag och söndag enligt det angivna schemat. |
| Upprepning | Körs var 15:e minut varannan vecka endast på måndagar | 2 | Vecka | {none} | "Måndag" | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 | 0, 15, 30, 45 | Det här schemat körs varannan måndag var 15:e minut. |
| Upprepning | Körs varje månad | 1 | Månad | startDate T startTime Z | {unavailable} | {unavailable} | {unavailable} | Det här schemat startar inte tidigare än det angivna startdatumet och -tiden och beräknar framtida upprepningar på startdatum och -tid. Om du inte anger något startdatum och starttid används skapandedatum och -tid i det här schemat. |
| Upprepning | Körs varje timme för en dag per månad | 1 | Månad | {see note} | {unavailable} | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 | {see note} | Om du inte anger något startdatum och starttid används skapandedatum och -tid i det här schemat. Om du vill styra minuterna för upprepningsschemat anger du minuter i timmen, en starttid eller använder skapandetiden. Om starttiden eller skapandetiden till exempel är 08.25 körs schemat kl. 08.25, 09.25, 10.25 och så vidare. |