Plánování a spouštění opakujících se automatizovaných úloh, procesů a pracovních postupů pomocí Azure Logic Apps
Logic Apps pomáhá vytvářet a spouštět automatizované opakované úlohy a procesy podle plánu. Vytvořením pracovního postupu aplikace logiky, který začíná integrovaným triggerem opakování nebo triggerem posuvného okna, což jsou aktivační události typu Plán, můžete úlohy spustit okamžitě, později nebo opakovaně. Můžete volat služby uvnitř a mimo Azure, jako jsou koncové body HTTP nebo HTTPS, odesílat zprávy do služeb Azure, jako jsou Azure Storage a Azure Service Bus, nebo nahrání souborů do sdílené složky. Pomocí triggeru Opakování můžete také nastavit složité plány a pokročilá opakování pro spouštění úloh. Další informace o integrovaných aktivačních událostech a akcích plánovače najdete v tématu Plánování aktivačních událostí a Plánování akcí.
Tip
Opakované úlohy můžete plánovat a spouštět bez vytvoření samostatné aplikace logiky pro každou naplánovanou úlohu a spuštění do limitu pracovních postupů na oblast a předplatné. Místo toho můžete použít vzor aplikace logiky, který je vytvořený šablonou Azure pro rychlý start: Logic Apps plánovače úloh.
Šablona Logic Apps úloh vytvoří aplikaci logiky CreateTimerJob, která volá aplikaci logiky úlohy Časovač. Potom můžete volat aplikaci logiky CreateTimerJob jako rozhraní API vytvořením požadavku HTTP a předáním plánu jako vstupu pro požadavek. Každé volání aplikace logiky CreateTimerJob také volá aplikaci logiky TimerJob, která vytvoří novou instanci úlohy TimerJob, která se bude nepřetržitě spouštět na základě zadaného plánu nebo až do splnění zadaného limitu. Tímto způsobem můžete spustit tolik instancí úlohy TimerJob, kolik chcete, aniž byste se obavy o omezení pracovních postupů obavy, protože instance nejsou jednotlivé definice pracovních postupů nebo prostředků aplikace logiky.
Tento seznam obsahuje několik příkladů úloh, které můžete spustit s integrovanými triggery Plánování:
Získání interních dat, například spuštění SQL procedury každý den.
Získejte externí data, například každých 15 minut si z NOAA můžete vyžádat zprávy o počasí.
Odešlete data sestavy, jako je například e-mail se souhrnem všech objednávek, které byly v minulém týdnu větší než určitá částka.
Zpracování dat, jako je například komprese dnešních nahraných obrázků každý pracovní den v době mimo špičku
Vyčistěte data, například odstraňte všechny tweety starší než tři měsíce.
Archivujte data, jako jsou nabízení faktur službě zálohování v 1:00 každý den po dobu dalších devíti měsíců.
K pozastavení pracovního postupu před provedením další akce můžete použít také integrované akce Plánování, například:
Počkejte do dne v týdnu a odešlete e-mailem aktualizaci stavu.
Zpoždíte pracovní postup, dokud nebude mít volání HTTP čas na dokončení před obnovením a načtením výsledku.
Tento článek popisuje možnosti pro plánování integrovaných triggerů a akcí.
Aktivační události plánu
Pracovní postup aplikace logiky můžete spustit pomocí triggeru opakování nebo triggeru posuvného okna, který není přidružený k žádné konkrétní službě nebo systému. Tyto triggery spustí pracovní postup na základě zadaného opakování, ve kterém vyberete interval a frekvenci, například počet sekund, minut, hodin, dnů, týdnů nebo měsíců. Můžete také nastavit počáteční datum a čas spolu s časovým pásmem. Pokaždé, když se trigger aktivuje, Logic Apps vytvoří a spustí novou instanci pracovního postupu pro vaši aplikaci logiky.
Tady jsou rozdíly mezi těmito aktivačními událostmi:
Opakování: Spouští pracovní postup v pravidelných časových intervalech na základě zadaného plánu. Pokud trigger vynechá opakování, například kvůli přerušení nebo zakázaným pracovním postupům, nezpracuje trigger Opakování zmeškaná opakování, ale restartuje opakování s dalším naplánovaným intervalem.
Pokud jako frekvenci vyberete Den, můžete zadat hodiny dne a minuty v hodině, například každý den ve 2:30. Pokud jako frekvenci vyberete Týden, můžete také vybrat dny v týdnu, jako je středa a sobota. Můžete také zadat počáteční datum a čas spolu s časovým pásmem pro plán opakování.
Tip
Pokud opakování nezadá konkrétní počáteční datum a čas,první opakování se spustí okamžitě po uložení nebo nasazení aplikace logiky, a to bez ohledu na nastavení opakování triggeru. Pokud se chcete tomuto chování vyhnout, zadejte počáteční datum a čas, kdy se má spustit první opakování.
Pokud opakování nezadá žádné další pokročilé možnosti plánování, jako jsou například konkrétní časy spuštění budoucích opakování, budou tato opakování vycházet z času posledního spuštění. V důsledku toho se můžou časy spuštění těchto opakování posunovat kvůli faktorům, jako je latence během volání úložiště. Pokud chcete zajistit, aby aplikace logiky nezmešká opakování, zejména pokud je frekvence ve dnech nebo déle, vyzkoušejte tyto možnosti:
Zadejte počáteční datum a čas opakování plus konkrétní časy spuštění následných opakování pomocí vlastností s názvem V těchto hodinách a v těchto minutách, které jsou k dispozici pouze pro frekvence Den a Týden.
Místo triggeru Opakování použijte triggerposuvného okna.
Další informace najdete v tématu Vytváření, plánování a spouštění opakujících se úloh a pracovních postupů pomocí triggeru Opakování.
Posuvné okno: Spouští pracovní postup v pravidelných časových intervalech, které pracují s daty v průběžných bloků dat. Pokud trigger vynechá opakování, například kvůli přerušení nebo zakázaným pracovním postupům, trigger posuvného okna se vrátí zpět a zpracuje zmeškaná opakování.
Můžete zadat počáteční datum a čas, časové pásmo a dobu trvání, která zpozdí každé opakování v pracovním postupu. Tento trigger nepodporuje rozšířené plány, například konkrétní hodiny dne, minuty v hodině a dny v týdnu. Další informace najdete v tématu Vytváření, plánování a spouštění opakujících se úloh a pracovních postupů pomocí triggeru posuvného okna.
Akce plánování
Po jakékoli akci v pracovním postupu aplikace logiky můžete použít akce Delay (Zpoždění) a Delay Until (Zpoždění do), aby váš pracovní postup čekal před dalším spuštěním akce.
Zpoždění: Počkejte na spuštění další akce pro zadaný počet časových jednotek, jako jsou sekundy, minuty, hodiny, dny, týdny nebo měsíce. Další informace najdete v tématu Zpoždění další akce v pracovních postupech.
Zpoždění do: Počkejte na spuštění další akce až do zadaného data a času. Další informace najdete v tématu Zpoždění další akce v pracovních postupech.
Vzory počátečního data a času
Tady je několik vzorů, které ukazují, jak můžete řídit opakování pomocí počátečního data a času a jak Logic Apps tato opakování spouští:
| Čas spuštění | Opakování bez plánu | Opakování s plánem (jenom trigger opakování) |
|---|---|---|
| {none} | Okamžitě spustí první úlohu. Spustí budoucí úlohy na základě času posledního spuštění. |
Okamžitě spustí první úlohu. Spustí budoucí úlohy na základě zadaného plánu. |
| Počáteční čas v minulosti | Trigger opakování: Vypočítá časy spuštění na základě zadaného času spuštění a zahodí minulé časy spuštění. Spustí první úlohu při dalším budoucím spuštění. Spustí budoucí úlohy na základě času posledního spuštění. Trigger posuvného okna: Vypočítá časy spuštění na základě zadaného času spuštění a bude respektovat časy minulých spuštění. Spustí budoucí úlohy na základě zadaného času spuštění. Další vysvětlení najdete v příkladu za touto tabulkou. |
Spustí první úlohu dříve než čas spuštění na základě plánu vypočítaného z času spuštění. Spustí budoucí úlohy na základě zadaného plánu. Poznámka: Pokud zadáte opakování s plánem, ale nezadáte hodiny nebo minuty pro plán, Logic Apps vypočítá budoucí časy spuštění pomocí hodin nebo minut od prvního spuštění. |
| Čas spuštění hned nebo v budoucnosti | Spustí první úlohu v zadaný čas spuštění. Trigger opakování: Spustí budoucí úlohy na základě času posledního spuštění. Trigger posuvného okna: Spustí budoucí úlohy na základě zadaného času spuštění. |
Spustí první úlohu dříve než čas spuštění na základě plánu vypočítaného z času spuštění. Spustí budoucí úlohy na základě zadaného plánu. Poznámka: Pokud zadáte opakování s plánem, ale nezadáte hodiny nebo minuty pro plán, Logic Apps vypočítá budoucí časy spuštění pomocí hodin nebo minut od prvního spuštění. |
Příklad pro minulý počáteční čas a opakování, ale žádný plán
Předpokládejme, že aktuální datum a čas je 8. září 2017 v 13:00. Počáteční datum a čas zadáte jako 7. září 2017 ve 14:00, což je v minulosti, a opakování, které se spouští každé dva dny.
| Čas spuštění | Aktuální čas | Opakování | Plán |
|---|---|---|---|
| 9. 9.2017 07 T14:00:00Z (9. 9.2017 v 14:00) |
9. 9.2017 08 T13:00:00Z (9. 9.2017 v 13:00) |
Každé dva dny | {none} |
Pro trigger Opakování modul Logic Apps vypočítá časy spuštění na základě času spuštění, zahodí časy spuštění, použije další čas spuštění v budoucnosti pro první spuštění a vypočítá budoucí spuštění na základě času posledního spuštění.
Toto opakování vypadá takhle:
| Čas spuštění | Čas prvního spuštění | Časy spuštění v budoucnu |
|---|---|---|
| 2017-09 –07 v 2:00 odp. | 2017-09 –09 v 2:00 odp. | 2017-09 –11 v 2:00 odp. 2017-09 –13 v 2:00 odp. 2017-09 –15 v 2:00 odp. a tak dále... |
Bez ohledu na to, jak daleko v minulosti zadáte čas zahájení, například 2017-09-05 v 2:00 odp. nebo 2017-09-01 v 2:00 odp. první spuštění vždy používá další budoucí čas spuštění.
V případě aktivační události posuvných oken modul Logic Apps vypočítá dobu běhu založenou na čase spuštění, respektuje dobu běhu, používá počáteční čas prvního spuštění a vypočítá budoucí běhy na základě času spuštění.
Tady je postup, jak vypadá toto opakování:
| Čas spuštění | Čas prvního spuštění | Budoucí časy spuštění |
|---|---|---|
| 2017-09 –07 v 2:00 odp. | 2017-09 –08 v 1:00 odp. (aktuální čas) | 2017-09 –09 v 2:00 odp. 2017-09 –11 v 2:00 odp. 2017-09 –13 v 2:00 odp. 2017-09 –15 v 2:00 odp. a tak dále... |
Bez ohledu na to, jak daleko v minulosti zadáte čas zahájení, například 2017-09-05 v 2:00 odp. nebo 2017-09-01 v 2:00 odp. první spuštění vždy používá určený čas spuštění.
Opakování pro letní čas a běžný čas
Opakující se předdefinované aktivační události dodržují plán, který jste nastavili, včetně jakéhokoli časového pásma, které zadáte. Pokud nevyberete časové pásmo, může letní čas (letní čas) ovlivnit dobu, kdy se triggery spouštějí, například posune čas zahájení o hodinu dopředu při zahájení LETNÍho času a jednu hodinu zpět v případě, kdy končí letní čas. Při plánování úloh Logic Apps vloží zprávu ke zpracování do fronty a určí, kdy bude tato zpráva k dispozici, na základě času UTC, kdy byla poslední úloha spuštěna, a času UTC, kdy je naplánováno spuštění další úlohy.
Aby se zabránilo tomuto posunu, aby vaše aplikace logiky běžela v zadaném čase začátku, ujistěte se, že jste vybrali časové pásmo. V takovém případě se čas UTC pro vaši aplikaci logiky posune také k čítači změny sezónních časů.
Poznámka
Aktivační události, které začínají mezi 2:00. až 3:00 AM, můžou mít problémy, protože změny v letním čase se projeví v 2:00, což by mohlo způsobit, že se počáteční čas stane neplatný nebo nejednoznačný. Pokud máte více aplikací logiky v rámci stejného dvojznačného intervalu, mohou se překrývat. Z tohoto důvodu se můžete vyhnout počátečním časům mezi 2:00. až 3:00 dop.
Předpokládejme například, že máte dvě aplikace logiky, které běží denně. Jedna aplikace logiky se spouští v 1:30 v místním čase, zatímco ostatní hodiny běží později v 2:30 místním čase. Co se stane s počátečními časy pro tyto aplikace při zahájení a ukončení letního času?
Spouští se triggery ve všech případech, kdy se čas posune o jednu hodinu dopředu?
Spouští se triggery dvakrát, když se čas posune o jednu hodinu zpět?
Pokud tyto aplikace logiky používají zónu UTC-6:00 (střed & USA –), tato simulace ukazuje, jak se čas UTC posunul do 2019 pro počítadlo změn v letním čase, přesunutí jedné hodiny dopředu nebo dopředu, aby aplikace pokračovaly v neočekávaných místních časech bez vynechaných nebo duplicitních spuštění.
03/10/2019: datum zahájení začíná na 2:00 ráno, posune hodinu o jednu hodinu dopředu
Po zahájení LETNÍho času se čas UTC posune o jednu hodinu zpět, aby vaše aplikace logiky pokračovala v chodu na stejném místním čase:
#1 aplikace logiky
Date (Datum) Čas (místní) Čas (UTC) Poznámky 03/09/2019 1:30:00 DOP. 7:30:00 DOP. ČAS UTC před dnem, kdy začne platit letní čas. 03/10/2019 1:30:00 DOP. 7:30:00 DOP. ČAS UTC je stejný, protože letní čas nevede k jeho uplatnění. 03/11/2019 1:30:00 DOP. 6:30:00 DOP. UTC posouvá jednu hodinu zpět po skončení platnosti. #2 aplikace logiky
Date (Datum) Čas (místní) Čas (UTC) Poznámky 03/09/2019 2:30:00 DOP. 8:30:00 DOP. ČAS UTC před dnem, kdy začne platit letní čas. 03/10/2019 3:30:00 DOP. × 8:30:00 DOP. Datum a čas je již v platnosti, takže místní čas se přesunul o hodinu dopředu, protože časové pásmo UTC-6:00 se změní na UTC-5:00. Další informace najdete v tématu triggery, které začínají v rozmezí od 2:00 do 3:00. 03/11/2019 2:30:00 DOP. 7:30:00 DOP. UTC posouvá jednu hodinu zpět po skončení platnosti.
11/03/2019: letní čas končí na 2:00 a posune čas o jednu hodinu zpět
Pro kompenzaci se čas UTC posune o hodinu dopředu, aby vaše aplikace logiky pokračovala v chodu ve stejném místním čase:
#1 aplikace logiky
Date (Datum) Čas (místní) Čas (UTC) Poznámky 11/02/2019 1:30:00 DOP. 6:30:00 DOP. 11/03/2019 1:30:00 DOP. 6:30:00 DOP. 11/04/2019 1:30:00 DOP. 7:30:00 DOP. #2 aplikace logiky
Date (Datum) Čas (místní) Čas (UTC) Poznámky 11/02/2019 2:30:00 DOP. 7:30:00 DOP. 11/03/2019 2:30:00 DOP. 8:30:00 DOP. 11/04/2019 2:30:00 DOP. 8:30:00 DOP.
Spustit pouze jednorázově
Pokud chcete aplikaci logiky spustit pouze v jednom okamžiku v budoucnu, můžete použít šablonu Scheduler: Run jedenkrát Jobs . Po vytvoření nové aplikace logiky, ale před otevřením návrháře Logic Apps v části šablony vyberte v seznamu kategorie možnost plán a pak vyberte tuto šablonu:

Nebo, pokud můžete aplikaci logiky spustit, když se přijme požadavek HTTP – Trigger žádosti a předejte čas spuštění jako parametr triggeru. Pro první akci použijte akci zpoždění do-plánovaného a zadejte čas, kdy se má spustit další akce.
Spustit jednou za poslední den v měsíci
Chcete-li spustit spuštění opakování pouze jednou za poslední den v měsíci, je nutné upravit aktivační událost v základní definici JSON pracovního postupu pomocí zobrazení kódu, nikoli návrháře. Můžete ale použít následující příklad:
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Month",
"interval": 1,
"schedule": {
"monthDays": [-1]
}
},
"type": "Recurrence"
}
}
Příklady opakování
Tady jsou různé příklady opakování, které můžete nastavit pro aktivační události, které podporují tyto možnosti:
| Trigger | Opakování | Interval | Frekvence | Čas spuštění | V tyto dny | V těchto hodinách | V těchto minutách | Poznámka |
|---|---|---|---|---|---|---|---|---|
| Vzorec Posuvné okno |
Spustit každých 15 minut (žádné počáteční datum a čas) | 15 | Minuta | nTato | znemožnit | nTato | nTato | Tento plán se spustí okamžitě a pak vypočítá budoucí opakování na základě posledního času spuštění. |
| Vzorec Posuvné okno |
Spustit každých 15 minut (s počátečním datem a časem) | 15 | Minuta | StartDate T čas_spuštění Z | znemožnit | nTato | nTato | Tento plán se nespustí dříve , než je zadané počáteční datum a čas, a pak vypočítá budoucí opakování na základě posledního času spuštění. |
| Vzorec Posuvné okno |
Spustit každou hodinu, ve hodinu (s počátečním datem a časem) | 1 | Hodina | StartDate THH: 00:00Z | znemožnit | nTato | nTato | Tento plán se nespustí dříve , než je zadané počáteční datum a čas. Budoucí opakování se spouští každou hodinu s označením "00" minut, které Logic Apps vypočítá od počátečního času. Pokud je frekvence "Week" (týden) nebo "Month", tento plán se spustí jenom na jeden den v týdnu nebo jeden den za měsíc. |
| Vzorec Posuvné okno |
Spustit každou hodinu, každý den (žádné počáteční datum a čas) | 1 | Hodina | nTato | znemožnit | nTato | nTato | Tento plán se spustí okamžitě a vypočítá budoucí opakování na základě posledního času spuštění. Pokud je frekvence "Week" (týden) nebo "Month", tento plán se spustí jenom na jeden den v týdnu nebo jeden den za měsíc. |
| Vzorec Posuvné okno |
Spustit každou hodinu, každý den (s počátečním datem a časem) | 1 | Hodina | StartDate T čas_spuštění Z | znemožnit | nTato | nTato | Tento plán se nespustí dříve , než je zadané počáteční datum a čas, a pak vypočítá budoucí opakování na základě posledního času spuštění. Pokud je frekvence "Week" (týden) nebo "Month", tento plán se spustí jenom na jeden den v týdnu nebo jeden den za měsíc. |
| Vzorec Posuvné okno |
Spouští se každých 15 minut po celé hodině (s počátečním datem a časem). | 1 | Hodina | StartDate T00:15:00Z | znemožnit | nTato | nTato | Tento plán se nespustí dříve , než je zadané počáteční datum a čas. Budoucí opakování se spouští na označení "15" minut, které Logic Apps vypočítá od počátečního času, takže 00:15 dop. 1:15 2:15 dop. a tak dále. |
| Opakování | Spustit každých 15 minut po celé hodině (bez počátečního data a času) | 1 | Den | nTato | znemožnit | 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 | Tento plán běží v 00:15 dop. 1:15 AM, 2:15 a tak dále. Tento plán je také stejný jako frekvence "hodina" a čas spuštění s "15" minutami. |
| Opakování | Spustí se každých 15 minut v zadaném počtu minut (žádné počáteční datum a čas). | 1 | Den | {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 | Tento plán se spustí až po další zadané 15minutové označce. |
| Opakování | Spuštění denně v 8:00 plus minuta od uložení aplikace logiky | 1 | Den | {none} | {unavailable} | 8 | {none} | Bez počátečního data a času se tento plán spustí na základě času uložení aplikace logiky (operace PUT). |
| Opakování | Spuštění denně v 8:00 (s počátečním datem a časem) | 1 | Den | datum spuštění T08:00:00Z | {unavailable} | {none} | {none} | Tento plán nezačíná dříve než zadané počáteční datum a čas. Budoucí výskyty se spustí denně v 8:00. |
| Opakování | Spuštění denně v 8:00 (bez počátečního data a času) | 1 | Den | {none} | {unavailable} | 8 | 00 | Tento plán se spouští každý den v 8:00. |
| Opakování | Spuštění denně v 8:00 a 16:00 | 1 | Den | {none} | {unavailable} | 8, 16 | 0 | |
| Opakování | Spuštění denně v 8:30, 8:45, 16:30 a 16:45 | 1 | Den | {none} | {unavailable} | 8, 16 | 30, 45 | |
| Opakování | Spuštění každou sobotu v 17:00 (žádné počáteční datum a čas) | 1 | Týden | {none} | "Saturday" | 17 | 0 | Tento plán se spouští každou sobotu v 17:00. |
| Opakování | Spuštění každou sobotu v 17:00 (s počátečním datem a časem) | 1 | Týden | datum spuštění T17:00:00Z | "Saturday" | {none} | {none} | Tento plán nezačíná dříve než zadané počáteční datum a čas, v tomto případě 9. září 2017 v 17:00. Budoucí opakování se spustí každou sobotu v 17:00. |
| Opakování | Spuštění každé úterý, čtvrtek v 17:00 plus minuta po uložení aplikace logiky | 1 | Týden | {none} | "Tuesday", "Thursday" | 17 | {none} | |
| Opakování | Spustí se každou hodinu v pracovní době. | 1 | Týden | {none} | Vyberte všechny dny kromě soboty a neděle. | Vyberte hodiny dne, které chcete. | Vyberte libovolné minuty v požadovanou hodinu. | Pokud máte například pracovní dobu od 8:00 do 17:00, vyberte 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 jako hodiny dne plus "0" jako minuty v hodině. |
| Opakování | Spuštění jednou denně o víkendech | 1 | Týden | {none} | "Saturday", "Sunday" | Vyberte hodiny dne, které chcete. | Podle potřeby vyberte libovolné minuty v hodině. | Tento plán se spouští každou sobotu a neděli podle zadaného plánu. |
| Opakování | Spuštění každých 15 minut jen v pondělí | 2 | Týden | {none} | "Monday" (Pondělí) | 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 | Tento plán se spouští každé druhé pondělí každých 15 minut. |
| Opakování | Spuštění každý měsíc | 1 | Month (Měsíc) | datum spuštění T startTime Z | {unavailable} | {unavailable} | {unavailable} | Tento plán nezačíná dříve než zadané počáteční datum a čas a vypočítá budoucí opakování k počátečnímu datu a času. Pokud nezadáte počáteční datum a čas, použije tento plán datum a čas vytvoření. |
| Opakování | Spuštění každou hodinu po dobu jednoho dne v měsíci | 1 | Month (Měsíc) | {viz poznámka} | {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 | {viz poznámka} | Pokud nezadáte počáteční datum a čas, použije tento plán datum a čas vytvoření. Pokud chcete řídit minuty plánu opakování, zadejte minuty v hodině, čas spuštění nebo použijte čas vytvoření. Pokud je například čas spuštění nebo čas vytvoření 8:25, spustí se tento plán v 8:25, 9:25, 10:25 atd. |