Vytvoření triggeru, který bude spouštět kanál podle plánu

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek obsahuje informace o aktivační události plánu a krocích pro vytvoření, spuštění a monitorování aktivační události plánu. Další typy triggerů najdete v tématu Spouštění kanálů a triggery.

Při vytváření aktivační události plánu zadáte plán (počáteční datum, opakování, koncové datum atd.) triggeru a přidružíte ho ke kanálu. Mezi kanály a aktivačními událostmi existuje vztah n-m. Víc aktivačních událostí může aktivovat jeden kanál. Jedna aktivační událost může aktivovat více kanálů.

Následující části obsahují postup vytvoření aktivační události plánu různými způsoby.

Prostředí portálu Azure Data Factory a Synapse

Můžete vytvořit aktivační událost plánu, která naplánuje pravidelné spuštění kanálu (hodinově, denně atd.).

Poznámka:

Úplný návod k vytvoření kanálu a aktivační události plánu, která přidruží trigger ke kanálu a spuštění a monitorování kanálu, najdete v tématu Rychlý start: Vytvoření datové továrny pomocí uživatelského rozhraní služby Data Factory.

  1. Přepněte na kartu Upravit ve službě Data Factory nebo na kartě Integrace ve službě Azure Synapse.


  1. V nabídce vyberte Aktivační událost a pak vyberte Nový/Upravit.

    New trigger menu

  2. Na stránce Přidat triggery vyberte Zvolit aktivační událost... a pak vyberte +Nový.

    Add triggers - new trigger

  3. Na stránce Nová aktivační událost proveďte následující kroky:

    1. Potvrďte, že je pro typ vybraný plán.

    2. Zadejte počáteční datum a čas aktivační události pro počáteční datum. Ve výchozím nastavení je nastavená na aktuální datum a čas ve standardu UTC (Coordinated Universal Time).

    3. Zadejte časové pásmo, ve kterém se trigger vytvoří. Nastavení časového pásma se použije pro počáteční datum, koncové datum a časy spuštění v rozšířených možnostech opakování. Změna nastavení časového pásma automaticky nezmění počáteční datum. Ujistěte se, že je počáteční datum v zadaném časovém pásmu správné. Upozorňujeme, že naplánovaná doba spuštění triggeru bude považována za počáteční datum (ujistěte se, že počáteční datum je minimálně 1 minuta menší než doba spuštění, jinak aktivuje kanál v dalším opakování).

      Poznámka:

      U časových pásem, které sledují letní čas, se čas triggeru automaticky upraví pro změnu dvakrát za rok, pokud je opakování nastavené na Počet dnů nebo vyšší. Pokud se chcete odhlásit ze změny letního času, vyberte časové pásmo, které nespozoruje letní čas, například UTC.

      Důležité

      K úpravě letního času dochází pouze u triggeru s opakováním nastaveným na dny nebo vyšší. Pokud je aktivační událost nastavená na počet hodin nebo minut , bude se v pravidelných intervalech dál aktivovat.

    4. Zadejte opakování pro aktivační událost. V rozevíracím seznamu vyberte jednu z hodnot (každou minutu, každou minutu, denně, týdně a měsíčně). Do textového pole zadejte násobitel. Pokud například chcete, aby se trigger spustil jednou za každých 15 minut, vyberete každou minutu a do textového pole zadáte 15 .

    5. Pokud v rozevíracím seznamu zvolíte "Dny, týdny nebo měsíce", můžete v rozevíracím seznamu najít "Upřesnit možnosti opakování". Advanced recurrence options of Day(s), Week(s) or Month(s)

    6. Chcete-li zadat datum ukončení, vyberte Zadat koncové datum a zadejte Datum ukončení a pak vyberte OK. Každé spuštění kanálu je zpoplatněno. Pokud testujete, možná budete chtít zajistit, aby se kanál aktivoval jenom několikrát. Zajistěte však, aby měl kanál mezi časem publikování a koncovým časem dostatek času na spuštění. Aktivační událost se projeví až po publikování řešení, ne při uložení triggeru v uživatelském rozhraní.

      Trigger settings

      Trigger settings for End Date

  4. V okně Nový trigger vyberte v aktivované možnosti Ano a pak vyberte OK. Toto zaškrtávací políčko můžete použít k pozdější deaktivaci triggeru.

    Trigger settings - Next button

  5. V okně Nový trigger zkontrolujte zprávu upozornění a pak vyberte OK.

    Trigger settings - Finish button

  6. Výběrem možnosti Publikovat vše publikujte změny. Dokud změny nepublikujete, trigger nespustí spuštění kanálu.

    Publish button

  7. Přepněte na kartu Spuštění kanálu na levé straně a pak vyberte Aktualizovat a aktualizujte seznam. Zobrazí se spuštění kanálu aktivovaná naplánovanou aktivační událostí. Všimněte si hodnot ve sloupci Aktivoval(a). Pokud použijete možnost Aktivovat, zobrazí se v seznamu ruční spuštění triggeru.


  1. Přepněte do zobrazení Plán spuštění \ aktivační události.


Azure PowerShell

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

V této části se dozvíte, jak pomocí Azure PowerShellu vytvořit, spustit a monitorovat aktivační událost plánu. Pokud chcete vidět tuto ukázku, nejprve si projděte rychlý start: Vytvoření datové továrny pomocí Azure PowerShellu. Pak do hlavní metody přidejte následující kód, který vytvoří a spustí aktivační událost plánu, která se spustí každých 15 minut. Aktivační událost je přidružená k kanálu s názvem Adfv2QuickStartPipeline , který vytvoříte v rámci rychlého startu.

Požadavky

Ukázka kódu

  1. Ve složce C:\ADFv2QuickStartPSH\ vytvořte soubor JSON s názvem MyTrigger.json s následujícím obsahem:

    Důležité

    Před uložením souboru JSON nastavte hodnotu elementu startTime na aktuální čas UTC. Nastavte hodnotu elementu endTime na jednu hodinu za aktuální čas UTC.

    {
        "properties": {
            "name": "MyTrigger",
            "type": "ScheduleTrigger",
            "typeProperties": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 15,
                    "startTime": "2017-12-08T00:00:00Z",
                    "endTime": "2017-12-08T01:00:00Z",
                    "timeZone": "UTC"
                }
            },
            "pipelines": [{
                    "pipelineReference": {
                        "type": "PipelineReference",
                        "referenceName": "Adfv2QuickStartPipeline"
                    },
                    "parameters": {
                        "inputPath": "adftutorial/input",
                        "outputPath": "adftutorial/output"
                    }
                }
            ]
        }
    }
    

    V fragmentu kódu JSON:

    • Prvek typu triggeru je nastaven na ScheduleTrigger.

    • Prvek frekvence je nastaven na "Minute" a interval element je nastaven na 15. Aktivační událost proto kanál spouští každých 15 minut mezi počátečním a koncovým časem.

    • Prvek timeZone určuje časové pásmo, ve které je trigger vytvořen. Toto nastavení má vliv na startTime i endTime.

    • Element endTime je jedna hodina za hodnotou elementu startTime . Trigger proto spustí kanál 15 minut, 30 minut a 45 minut po počátečním čase. Nezapomeňte aktualizovat čas zahájení na aktuální čas UTC a čas ukončení na jednu hodinu po počátečním čase.

      Důležité

      V případě časového pásma UTC musí počáteční a koncový čas následovat ve formátu rrrr-MM-ddTHH:mm:ssZ, zatímco u jiných časových pásem, startTime a endTime se řídí 'rrrr-MM-ddTHH:mm:ss'.

      Podle standardu ISO 8601 označí přípona Z časové razítko datum a čas k časovému pásmu UTC a vykresluje pole timeZone bez použití. I když u časového pásma UTC chybí přípona Z, při aktivaci se zobrazí chyba.

    • Aktivační událost je přidružena ke kanálu Adfv2QuickStartPipeline . Pokud chcete k triggeru přidružit více kanálů, přidejte další části pipelineReference .

    • Kanál v rychlém startu má dvě hodnoty parametrů : inputPath a outputPath. A hodnoty těchto parametrů předáte z triggeru.

  2. Vytvořte trigger pomocí rutiny Set-AzDataFactoryV2Trigger :

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Pomocí rutiny Get-AzDataFactoryV2Trigger ověřte, že je stav triggeru Zastaveno:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Spusťte trigger pomocí rutiny Start-AzDataFactoryV2Trigger :

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Pomocí rutiny Get-AzDataFactoryV2Trigger ověřte, že je trigger spuštěný:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Spuštění triggeru v Azure PowerShellu získáte pomocí rutiny Get-AzDataFactoryV2TriggerRun . Pokud chcete získat informace o spuštění triggeru, pravidelně spusťte následující příkaz. Aktualizujte hodnoty TriggerRunStartedAfter a TriggerRunStartedBefore tak, aby odpovídaly hodnotám v definici triggeru:

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    Poznámka:

    Čas aktivační události plánu se zadává v časovém razítku UTC. TriggerRunStartedAfter a TriggerRunStartedBefore také očekává časové razítko UTC.

    Pokud chcete monitorovat spuštění triggeru a spuštění kanálu na webu Azure Portal, přečtěte si téma Monitorování spuštění kanálu.

Azure CLI

V této části se dozvíte, jak pomocí Azure CLI vytvořit, spustit a monitorovat aktivační událost plánu. Pokud chcete zobrazit tuto ukázku, nejprve si projděte rychlý start: Vytvoření služby Azure Data Factory pomocí Azure CLI. Pak podle následujících kroků vytvořte a spusťte aktivační událost plánu, která se spouští každých 15 minut. Aktivační událost je přidružená k kanálu s názvem Adfv2QuickStartPipeline , který vytvoříte v rámci rychlého startu.

Požadavky

Ukázka kódu

  1. V pracovním adresáři vytvořte soubor JSON s názvem MyTrigger.json s vlastnostmi triggeru. V tomto příkladu použijte následující obsah:

    Důležité

    Před uložením souboru JSON nastavte hodnotu elementu startTime na aktuální čas UTC. Nastavte hodnotu elementu endTime na jednu hodinu za aktuální čas UTC.

    {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
    

    V fragmentu kódu JSON:

    • Prvek typu triggeru je nastaven na ScheduleTrigger.

    • Prvek frekvence je nastaven na "Minute" a interval element je nastaven na 15. Aktivační událost proto kanál spouští každých 15 minut mezi počátečním a koncovým časem.

    • Prvek timeZone určuje časové pásmo, ve které je trigger vytvořen. Toto nastavení má vliv na startTime i endTime.

    • Element endTime je jedna hodina za hodnotou elementu startTime . Trigger proto spustí kanál 15 minut, 30 minut a 45 minut po počátečním čase. Nezapomeňte aktualizovat čas zahájení na aktuální čas UTC a čas ukončení na jednu hodinu po počátečním čase.

      Důležité

      V případě časového pásma UTC musí počáteční a koncový čas následovat ve formátu rrrr-MM-ddTHH:mm:ssZ, zatímco u jiných časových pásem, startTime a endTime se řídí 'rrrr-MM-ddTHH:mm:ss'.

      Podle standardu ISO 8601 označí přípona Z časové razítko datum a čas k časovému pásmu UTC a vykresluje pole timeZone bez použití. I když u časového pásma UTC chybí přípona Z, při aktivaci se zobrazí chyba.

    • Aktivační událost je přidružena ke kanálu Adfv2QuickStartPipeline . Pokud chcete k triggeru přidružit více kanálů, přidejte další části pipelineReference .

    • Kanál v rychlém startu má dvě hodnoty parametrů : inputPath a outputPath. A hodnoty těchto parametrů předáte z triggeru.

  2. Vytvořte trigger pomocí příkazu az datafactory trigger create :

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. Pomocí příkazu az datafactory trigger show ověřte, že je stav triggeru zastaven:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. Spuštění triggeru pomocí příkazu start triggeru az datafactory:

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. Pomocí příkazu az datafactory trigger show ověřte, že je stav triggeru spuštěn:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. Získejte spuštění triggeru v Azure CLI pomocí příkazu az datafactory trigger-run query-by-factory . Pokud chcete získat informace o spuštění triggeru, pravidelně spusťte následující příkaz. Aktualizujte hodnoty poslední aktualizace po a poslední aktualizaci před hodnotami tak, aby odpovídaly hodnotám v definici triggeru:

    az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
    

    Poznámka:

    Čas aktivační události plánu se zadává v časovém razítku UTC. Poslední aktualizace po a poslední aktualizaci– před tím také očekává časové razítko UTC.

    Pokud chcete monitorovat spuštění triggeru a spuštění kanálu na webu Azure Portal, přečtěte si téma Monitorování spuštění kanálu.

.NET SDK

V této části se dozvíte, jak pomocí sady .NET SDK vytvořit, spustit a monitorovat trigger. Pokud chcete zobrazit tuto ukázku, nejprve si projděte rychlý start: Vytvoření datové továrny pomocí sady .NET SDK. Pak do hlavní metody přidejte následující kód, který vytvoří a spustí aktivační událost plánu, která se spustí každých 15 minut. Aktivační událost je přidružená k kanálu s názvem Adfv2QuickStartPipeline , který vytvoříte v rámci rychlého startu.

Pokud chcete vytvořit a spustit aktivační událost plánu, která se spouští každých 15 minut, přidejte do hlavní metody následující kód:

            // Create the trigger
            Console.WriteLine("Creating the trigger");

            // Set the start time to the current UTC time
            DateTime startTime = DateTime.UtcNow;

            // Specify values for the inputPath and outputPath parameters
            Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
            pipelineParameters.Add("inputPath", "adftutorial/input");
            pipelineParameters.Add("outputPath", "adftutorial/output");

            // Create a schedule trigger
            string triggerName = "MyTrigger";
            ScheduleTrigger myTrigger = new ScheduleTrigger()
            {
                Pipelines = new List<TriggerPipelineReference>()
                {
                    // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                    new TriggerPipelineReference()
                    {
                        PipelineReference = new PipelineReference(pipelineName),
                        Parameters = pipelineParameters,
                    }
                },
                Recurrence = new ScheduleTriggerRecurrence()
                {
                    // Set the start time to the current UTC time and the end time to one hour after the start time
                    StartTime = startTime,
                    TimeZone = "UTC",
                    EndTime = startTime.AddHours(1),
                    Frequency = RecurrenceFrequency.Minute,
                    Interval = 15,
                }
            };

            // Now, create the trigger by invoking the CreateOrUpdate method
            TriggerResource triggerResource = new TriggerResource()
            {
                Properties = myTrigger
            };
            client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);

            // Start the trigger
            Console.WriteLine("Starting the trigger");
            client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);

K vytvoření aktivačních událostí v jiném časovém pásmu než UTC se vyžadují následující nastavení:

<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;

Pokud chcete monitorovat spuštění triggeru, přidejte následující kód před poslední Console.WriteLine příkaz v ukázce:

            // Check that the trigger runs every 15 minutes
            Console.WriteLine("Trigger runs. You see the output every 15 minutes");

            for (int i = 0; i < 3; i++)
            {
                System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
                List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
                Console.WriteLine("{0} trigger runs found", triggerRuns.Count);

                foreach (TriggerRun run in triggerRuns)
                {
                    foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
                    {
                        PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
                        Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
                        List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
                    }
                }
            }

Pokud chcete monitorovat spuštění triggeru a spuštění kanálu na webu Azure Portal, přečtěte si téma Monitorování spuštění kanálu.

Python SDK

V této části se dozvíte, jak pomocí sady Python SDK vytvořit, spustit a monitorovat trigger. Pokud chcete zobrazit tuto ukázku, nejprve si projděte rychlý start: Vytvoření datové továrny pomocí sady Python SDK. Potom přidejte následující blok kódu za blok kódu "monitorování spuštění kanálu" ve skriptu Pythonu. Tento kód vytvoří aktivační událost plánu, která se spouští každých 15 minut mezi zadanými počátečními a koncovými časy. Aktualizujte proměnnou start_time na aktuální čas UTC a proměnnou end_time na jednu hodinu po aktuálním čase UTC.

    # Create a trigger
    tr_name = 'mytrigger'
    scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
    pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
    pipelines_to_run = []
    pipeline_reference = PipelineReference('copyPipeline')
    pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
    tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
    adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)

    # Start the trigger
    adf_client.triggers.start(rg_name, df_name, tr_name)

Pokud chcete monitorovat spuštění triggeru a spuštění kanálu na webu Azure Portal, přečtěte si téma Monitorování spuštění kanálu.

Šablona Azure Resource Manageru

K vytvoření triggeru můžete použít šablonu Azure Resource Manageru. Podrobné pokyny najdete v tématu Vytvoření datové továrny Azure pomocí šablony Resource Manageru.

Předání počátečního času triggeru do kanálu

Azure Data Factory verze 1 podporuje čtení nebo zápis dělených dat pomocí systémových proměnných: SliceStart, SliceEnd, WindowStart a WindowEnd. V aktuální verzi kanálů Azure Data Factory a Synapse můžete toto chování dosáhnout pomocí parametru kanálu. Čas spuštění a naplánovaný čas triggeru se nastaví jako hodnota parametru kanálu. V následujícím příkladu se naplánovaný čas triggeru předává jako hodnota parametru pipeline scheduledRunTime :

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

Schéma JSON

Následující definice JSON ukazuje, jak vytvořit aktivační událost plánu s plánováním a opakováním:

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Month>>,
        "interval": <<int>>,             // Optional, specifies how often to fire (default to 1)
        "startTime": <<datetime>>,
        "endTime": <<datetime - optional>>,
        "timeZone": "UTC"
        "schedule": {                    // Optional (advanced scheduling specifics)
          "hours": [<<0-23>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-59>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
               {
                    "day": <<Monday-Sunday>>,
                    "occurrence": <<1-5>>
               }
           ]
        }
      }
    },
   "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>" : "<parameter 2 Value>"
                }
           }
      ]
  }
}

Důležité

Vlastnost parameters elementu pipelines je povinná. Pokud váš kanál nepřijímá žádné parametry, musíte pro vlastnost parameters zahrnout prázdnou definici JSON.

Přehled schématu

Následující tabulka obsahuje přehled hlavních elementů schématu souvisejících s opakováním a plánováním aktivační události:

Vlastnost JSON Popis
startTime Hodnota data a času. V případě jednoduchých plánů se hodnota vlastnosti startTime vztahuje pouze na první výskyt. U složitějších plánů aktivační událost nezačíná dřív než v čas určený hodnotou startTime.
V případě časového pásma UTC je 'yyyy-MM-ddTHH:mm:ssZ'formát , pro jiné časové pásmo, formát je 'yyyy-MM-ddTHH:mm:ss'.
endTime Koncové datum a čas pro aktivační událost. Aktivační událost se nebude spouštět po zadaném koncovém datu a času. Hodnota této vlastnosti nemůže být v minulosti. Tato vlastnost je nepovinná.
V případě časového pásma UTC je 'yyyy-MM-ddTHH:mm:ssZ'formát , pro jiné časové pásmo, formát je 'yyyy-MM-ddTHH:mm:ss'.
timeZone Časové pásmo, ve které se trigger vytvoří. Toto nastavení má vliv na čas startTime, endTime a plán. Zobrazení seznamu podporovaných časových pásem
recurrence Objekt recurrence, který určuje pravidla opakování aktivační události. Objekt recurrence podporuje elementy frequency (frekvence), interval (interval), endTime (koncový čas), count (počet) a schedule (plán). Když je definovaný objekt recurrence, vyžaduje se element frequency (frekvence). Další elementy objektu recurrence jsou volitelné.
frequency Jednotka frekvence, s jakou se aktivační událost opakuje. Mezi podporované hodnoty patří „minute“ (minuta), „hour“ (hodina), „day“ (den), „week“ (týden) a „month“ (měsíc).
interval Kladné celé číslo označující interval pro hodnotu frequency, která určuje, jak často se má aktivační událost spouštět. Pokud má například interval hodnotu 3 a frequency hodnotu „week“ (týden), aktivační událost se opakuje každé 3 týdny.
schedule Plán opakování pro aktivační událost. Aktivační události se zadanou hodnotou frequency mění své opakování na základě plánu opakování. Vlastnost schedule obsahuje úpravy opakování na základě minut, hodin, dní v týdnu, dní v měsíci a čísla týdne.

Důležité

V případě časového pásma UTC musí počáteční a koncový čas následovat ve formátu rrrr-MM-ddTHH:mm:ssZ, zatímco u jiných časových pásem, startTime a endTime se řídí 'rrrr-MM-ddTHH:mm:ss'.

Podle standardu ISO 8601 označí přípona Z časové razítko datum a čas k časovému pásmu UTC a vykresluje pole timeZone bez použití. I když u časového pásma UTC chybí přípona Z, při aktivaci se zobrazí chyba.

Výchozí hodnoty, omezení a příklady schématu

Vlastnost JSON Typ Požaduje se Default value Platné hodnoty Příklad
startTime String Ano Nic Data a časy podle normy ISO 8601 pro časové pásmo UTC "startTime" : "2013-01-09T09:30:00-08:00Z"
pro jiné časové pásmo "2013-01-09T09:30:00-08:00"
timeZone String Ano Nic Hodnoty časového pásma "UTC"
recurrence Objekt Ano Nic Objekt opakování "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Počet No 0 1 až 1 000 "interval":10
endTime String Ano Nic Hodnota data a času představující čas v budoucnosti. pro časové pásmo UTC "endTime" : "2013-02-09T09:30:00-08:00Z"
pro jiné časové pásmo "endTime" : "2013-02-09T09:30:00-08:00"
schedule Object No Nic Objekt plánu "schedule" : { "minute" : [30], "hour" : [8,17] }

Možnost časového pásma

Tady jsou některé z časových pásem podporovaných pro aktivační události plánovače:

Časové pásmo Posun UTC (bez letního času) timeZone Value Sledování letního času Formát časového razítka
Koordinovaný univerzální čas 0 UTC No 'yyyy-MM-ddTHH:mm:ssZ'
Tichomoří (PT) -8 Pacific Standard Time Ano 'yyyy-MM-ddTHH:mm:ss'
Centrální čas (CT) -6 Central Standard Time Ano 'yyyy-MM-ddTHH:mm:ss'
Východní čas (ET) -5 Eastern Standard Time Ano 'yyyy-MM-ddTHH:mm:ss'
Greenwich Mean Time (GMT) 0 GMT Standard Time Ano 'yyyy-MM-ddTHH:mm:ss'
Středoevropský standardní čas 1+ W. Europe Standard Time Ano 'yyyy-MM-ddTHH:mm:ss'
Indie – standardní čas (IST) +5:30 India Standard Time No 'yyyy-MM-ddTHH:mm:ss'
Standardní čas Číny +8 China Standard Time No 'yyyy-MM-ddTHH:mm:ss'

Tento seznam není úplný. Úplný seznam možností časového pásma najdete na stránce pro vytvoření triggeru portálu .

Vlastnost startTime

Následující tabulka ukazuje, jakým způsobem vlastnost startTime ovládá spouštění aktivační události:

Hodnota startTime Opakování bez plánu Opakování s plánem
Čas začátku v minulosti Vypočítá první čas spuštění v budoucnosti následující po čase začátku a v tomto čase se spustí.

Zahájí další spuštění na základě výpočtu z posledního času spuštění.

Prohlédněte si příklad pod touto tabulkou.
Aktivační událost se spustí až po zadaném čase začátku. První výskyt vychází z plánu vypočítaného z času začátku.

Zahájí další spuštění na základě plánu opakování.
Čas začátku v budoucnosti nebo přítomnosti Spustí se jednou v zadaný čas začátku.

Zahájí další spuštění na základě výpočtu z posledního času spuštění.
Aktivační událost se spustí až po zadaném čase začátku. První výskyt vychází z plánu vypočítaného z času začátku.

Zahájí další spuštění na základě plánu opakování.

Podívejme se na příklad toho, co se stane, když je čas začátku v minulosti a je nastaveno opakování, ale žádný plán. Předpokládejme, že aktuální čas je 2017-04-08 13:00, čas začátku je 2017-04-07 14:00 a opakování je nastaveno na každé dva dny. (Hodnota opakování je definována nastavením vlastnosti frekvence na "den" a vlastnost intervalu na hodnotu 2.) Všimněte si, že hodnota startTime je v minulosti a nastane před aktuálním časem.

Za těchtopodmínekch 2017-04-0914:00 Modul plánovače vypočítá výskyty spuštění na základě času začátku. Všechny instance v minulosti se zahodí. Modul použije další instanci, která nastane v budoucnosti. V tomto scénáři je 2017-04-072:00pmpočáteční čas , takže další instance je dva dny od této doby, což je 2017-04-09 v 2:00pm.

První čas spuštění je stejný, i když má vlastnost startTime hodnotu 2017-04-05 14:00 nebo 2017-04-01 14:00. Po prvním spuštění se další spuštění vypočítají na základě plánu. Proto jsou následné spuštění na 2017-04-112:00pm, pak 2017-04-13 v 2:00pm, pak v , pak 2017-04-15 v 2:00pma tak dále.

A nakonec, pokud v plánu aktivační události nejsou nastavené hodiny nebo minuty, jako výchozí hodnoty se použijí hodiny nebo minuty prvního spuštění.

Vlastnost schedule

Na jedné straně může použití plánu omezit počet spuštění aktivační události. Pokud má například aktivační událost s měsíční frekvencí naplánované spouštění jenom v 31. den, tato aktivační událost se spustí jenom v měsících, které mají 31 dní.

Na druhou stranu může plán způsobit také zvýšení počtu spuštění aktivační události. Například aktivační událost s měsíční frekvencí, která má naplánované spouštění na 1. a 2. den v měsíci se nespustí jednou za měsíc, ale v 1. i 2. den v měsíci.

Pokud je zadaných více elementů schedule, pořadí jejich vyhodnocování postupuje od největšího k nejmenšímu nastavení plánu. Vyhodnocování začne číslem týdne a pak pokračuje dnem v měsíci, dnem v týdnu, hodinou a nakonec minutou.

Následující tabulka obsahuje podrobný popis elementů schedule:

Element JSON Popis Platné hodnoty
minutes Minuty v hodině, ve kterých se aktivační událost spouští.
  • Integer
  • Pole celých čísel
hours Hodiny dne, ve kterých se aktivační událost spouští.
  • Integer
  • Pole celých čísel
weekDays Dny v týdnu, ve kterých se aktivační událost spouští. Tuto hodnotu je možné zadat jenom při týdenní frekvenci.
  • Monday (pondělí), Tuesday (úterý), Wednesday (středa), Thursday (čtvrtek), Friday (pátek), Saturday (sobota), Sunday (neděle)
  • Pole hodnot dní (maximální velikost pole je 7)
  • V hodnotách dní se nerozlišují malá a velká písmena
monthlyOccurrences Dny v měsíci, ve kterých se aktivační událost spouští. Tuto hodnotu je možné zadat jenom při měsíční frekvenci.
  • Pole měsíčních objektůOccurrence : { "day": day, "occurrence": occurrence }.
  • Atribut day představuje den v týdnu, ve kterém se aktivační událost spouští. Například vlastnost monthlyOccurrences s atributem day s hodnotou {Sunday} znamená každou neděli v měsíci. Atribut day je povinný.
  • Atribut occurrence představuje výskyt zadaného dne (day) v měsíci. Například vlastnost monthlyOccurrences s atributy day a occurrence s hodnotami {Sunday, -1} znamená poslední neděli v měsíci. Atribut occurrence je volitelný.
monthDays Dan v měsíci, ve kterém se aktivační událost spouští. Tuto hodnotu je možné zadat jenom při měsíční frekvenci.
  • Libovolná hodnota <= -1 a >= -31
  • Libovolná hodnota >= 1 a <= 31
  • Pole hodnot

Příklady plánů opakování aktivačních událostí

Tato část obsahuje příklady plánů opakování se zaměřením na objekt schedule a jeho elementy.

V příkladech se předpokládá, že vlastnost interval má hodnotu 1 a vlastnost frequency má správnou hodnotu s ohledem na definici plánu. Například není možné, aby vlastnost frequency měla hodnotu „day“ a zároveň objekt schedule obsahoval úpravu atributu „monthDays“. Tato a podobná omezení jsou popsaná v tabulce v předchozí části.

Příklad Popis
{"hours":[5]} Spuštění každý den v 5:00.
{"minutes":[15], "hours":[5]} Spuštění každý den v 5:15.
{"minutes":[15], "hours":[5,17]} Spuštění každý den v 5:15 a 17:15.
{"minutes":[15,45], "hours":[5,17]} Spuštění každý den v 5:15, 5:45 a 17:15 a 17:45.
{"minutes":[0,15,30,45]} Spuštění každých 15 minut.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} Spuštění každou hodinu. Tato aktivační událost se spouští každou hodinu. Minuty se řídí hodnotou startTime, pokud je zadaná. Pokud hodnotu nezadáte, minuty se řídí časem vytvoření. Například pokud je čas začátku nebo čas vytvoření (podle situace) 0:25, aktivační událost se spustí v 0:25, 1:25, 2:25 atd. až do 23:25.

Tento plán je stejný jako aktivační událost s vlastností frequency s hodnotou „hour“ (hodina), vlastností interval s hodnotou 1 a žádným objektem schedule. Tento plán se dá s jinými hodnotami frequency a interval použít k vytvoření jiných aktivačních událostí. Když má například frequency hodnotu „month“ (měsíc), plán se spustí pouze jednou za měsíc, a ne každý den, jako když má frequency hodnotu „day“ (den).
{"minutes":[0]} Spuštění v každou celou hodinu. Tato aktivační událost se spouští každou celou hodinu počínaje 0:00, 1:00, 2:00 atd.

Tento plán je ekvivalentem aktivační události s frekvencí "hour" a hodnotou startTime nula minut, nebo žádný plán , ale hodnotou frekvence "den". Pokud je hodnota frekvence "týden" nebo "měsíc", plán se provede jeden den v týdnu nebo jeden den pouze v měsíci.
{"minutes":[15]} Spuštění 15 minut po každé celé hodině. Tato aktivační událost se spouští 15 minut po každé celé hodině počínaje 0:15, 1:15, 2:15 atd. až do 23:15.
{"hours":[17], "weekDays":["saturday"]} Spuštění každý týden v sobotu v 17:00.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Spuštění každý týden v pondělí, středu a pátek v 17:00.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Spuštění každý týden v pondělí, středu a pátek v 17:15 a 17:45.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Spuštění ve všední dny každých 15 minut.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Spuštění ve všední dny každých 15 minut mezi 9:00 a 16:45.
{"weekDays":["tuesday", "thursday"]} Spuštění každé úterý a čtvrtek v zadaný čas začátku.
{"minutes":[0], "hours":[6], "monthDays":[28]} Spuštění 28. dne každého měsíce v 6:00 (za předpokladu, že frequency má hodnotu „month“ (měsíc)).
{"minutes":[0], "hours":[6], "monthDays":[-1]} Spuštění poslední den v měsíci v 6:00. Pokud chcete spustit aktivační událost poslední den v měsíci, použijte místo hodnot 28, 29, 30 nebo 31 hodnotu -1.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Spuštění v každý první a poslední den v měsíci v 6:00.
{monthDays":[1,14]} Spuštění v každý první a 14. den v měsíci v zadaný čas začátku.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Spuštění v každý první pátek v měsíci v 5:00.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Spuštění v každý první pátek v měsíci v zadaný čas začátku.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Spuštění v každý třetí pátek od konce měsíce v zadaný čas začátku.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Spuštění v každý první a poslední pátek v měsíci v 5:15.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Spuštění v každý první a poslední pátek v měsíci v zadaný čas začátku.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Spuštění v každý pátý pátek v měsíci v zadaný čas začátku. Pokud určitý měsíc nemá pátý pátek, kanál se nespustí, protože je jeho spouštění naplánováno jenom na páté pátky. Pokud chcete, aby se aktivační událost spouštěla v poslední pátek v měsíci, můžete jako occurrence místo hodnoty 5 zadat hodnotu -1.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Spuštění v poslední pátek v měsíci každých 15 minut.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Spuštění každou třetí středu v měsíci v 5:15, 5:45, 17:15 a 17:45.