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, jako je počáteční datum, opakování nebo koncové datum 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 Azure Synapse

Můžete vytvořit aktivační událost plánu, která naplánuje pravidelné spouštění kanálu, například hodinově nebo denně.

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.

    Snímek obrazovky znázorňující nabídku Nová aktivační událost

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

    Snímek obrazovky s podoknem Přidat triggery

  3. Na stránce Nový trigger:

    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 vztahuje na 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é. Naplánovaná doba spuštění triggeru se považuje za počáteční datum. (Ujistěte se, že počáteční datum je alespoň 1 minutu kratší než čas spuštění, nebo jinak aktivuje kanál v dalším opakování.)

      Poznámka:

      U časových pásem, které sledují letní čas, se 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é například nespočítá v letním čase( UTC).

      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ě nebo 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 Možnosti opakování, Počet dnů, Týdnů nebo Měsíců, zobrazí se v části Opakování.

      Snímek obrazovky s rozšířenými možnostmi opakování dnů, týdnů a měsíců

    6. Chcete-li zadat datum ukončení, vyberte Zadat koncové datum. Zadejte informace o ukončení a pak vyberte OK.

      Náklady se přidružují ke každému spuštění kanálu. Pokud testujete, možná budete chtít zajistit, aby se kanál aktivoval jenom několikrát. Ujistěte se ale, že je dostatek času, aby kanál běžel mezi časem publikování a koncovým časem. Aktivační událost se projeví až po publikování řešení, ne při uložení triggeru v uživatelském rozhraní.

      Snímek obrazovky znázorňující nastavení triggeru

      Snímek obrazovky znázorňující nastavení triggeru pro koncové datum a čas

  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.

    Snímek obrazovky znázorňující možnost Aktivované

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

    Snímek obrazovky znázorňující výběr tlačítka OK

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

    Snímek obrazovky s tlačítkem Publikovat vše

  7. Přepněte na kartu Spuštění kanálu na levé straně a pak výběrem možnosti Aktualizovat 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 nyní , zobrazí se v seznamu ruční spuštění triggeru.


  1. Přepněte do zobrazení Plán spuštění>triggeru.


Azure PowerShell

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si 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 zobrazit 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. Trigger je přidružený ke kanálu s názvem Adfv2QuickStartPipeline , který vytvoříte v rámci rychlého startu.

Požadavky

Ukázkový kód

  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 po aktuálním čase 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 type triggeru je nastaven na ScheduleTrigger.

    • Prvek frequency je nastaven Minute na a interval prvek 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ém je trigger vytvořen. Toto nastavení má vliv na obě startTime a 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 koncový čas na jednu hodinu po počátečním čase.

      Důležité

      V případě časového pásma startTime UTC a endTime potřebujete postupovat podle formátu yyyy-MM-ddTHH:mm:ssZ. Pro jiná časová pásma startTime a endTime postupujte podle yyyy-MM-ddTHH:mm:ss formátu.

      Podle standardu Z ISO 8601 se přípona používá k označení data a času do časového pásma UTC a vykreslení timeZone pole zbytečné. Z Pokud chybí přípona časového pásma UTC, výsledkem je chyba při aktivaci triggeru.

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

    • Kanál v rychlém startu má dvě parameters hodnoty: inputPath a outputPath. 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. TriggerRunStartedAfter Aktualizujte hodnoty takTriggerRunStartedBefore, 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 kroků vytvořte a spusťte aktivační událost plánu, která se spouští každých 15 minut. Trigger je přidružený ke kanálu s názvem Adfv2QuickStartPipeline , který vytvoříte v rámci rychlého startu.

Požadavky

Ukázkový kód

  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 po aktuálním čase 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 type triggeru je nastaven na ScheduleTrigger.

    • Prvek frequency je nastaven Minute na a interval prvek 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ém je trigger vytvořen. Toto nastavení má vliv na obě startTime a 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 koncový čas na jednu hodinu po počátečním čase.

      Důležité

      V případě časového pásma startTime UTC musí koncový čas dodržovat formát yyyy-MM-ddTHH:mm:ssZ. Pro jiná časová pásma startTime a endTime postupujte podle yyyy-MM-ddTHH:mm:ss formátu.

      Podle standardu ISO 8601 se přípona Z používá k označení data a času do časového pásma UTC a vykreslení timeZone pole nepoužitelně. Pokud u časového pásma UTC chybí přípona Z, při aktivaci se zobrazí chyba.

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

    • Kanál v rychlém startu má dvě parameters hodnoty: inputPath a outputPath. 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. Spuštění triggeru v Azure CLI získáte 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. last-updated-after Aktualizujte hodnoty taklast-updated-before, 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:

    Časy aktivačních událostí plánu jsou zadané v časovém razítku UTC. datum poslední aktualizace a poslední aktualizace– 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. Trigger je přidružený ke 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);

Pokud chcete vytvořit triggery v jiném časovém pásmu, než je UTC, jsou vyžadována 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 za blok kódu ve skriptu Pythonu přidejte následující blok monitor the pipeline run kódu. 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 end_time proměnnou 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 Azure 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, , SliceEndWindowStarta WindowEnd. V aktuální verzi kanálů Data Factory a Azure 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 kanálu 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 je povinná vlastnost pipelines prvku. Pokud váš kanál nepřebírají žádné parametry, musíte pro vlastnost zahrnout prázdnou parameters definici JSON.

Přehled schématu

Následující tabulka obsahuje základní přehled hlavních prvků schématu, které souvisejí s opakováním a plánováním triggeru.

Vlastnost JSON Popis
startTime Hodnota data a času. U jednoduchých startTime plánů se hodnota vlastnosti vztahuje na první výskyt. U složitých plánů se aktivační událost nespustí dříve než zadaná startTime hodnota.
Pro časové pásmo UTC je 'yyyy-MM-ddTHH:mm:ssZ'formát . U jiných časových pásem je yyyy-MM-ddTHH:mm:ssformát .
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á.
Pro časové pásmo UTC je 'yyyy-MM-ddTHH:mm:ssZ'formát . U jiných časových pásem je yyyy-MM-ddTHH:mm:ssformát .
timeZone Časové pásmo, ve kterém se trigger vytvoří. Toto nastavení má vliv na startTime, endTimea schedule. Podívejte se na seznam podporovaných časových pásem.
recurrence Objekt recurrence, který určuje pravidla opakování aktivační události. Objekt opakování podporuje frequency, , intervalendTime, counta schedule elementy. Je-li definován objekt opakování, frequency je prvek povinný. Další elementy objektu recurrence jsou volitelné.
frequency Jednotka frekvence, s jakou se aktivační událost opakuje. Mezi podporované hodnoty patří minute, hour, day, weeka month.
interval Kladné celé číslo, které označuje interval pro frequency hodnotu, což určuje, jak často se aktivační událost spouští. Například pokud je a interval 3 frequency je week, trigger se opakuje každých 3 týdny.
schedule Plán opakování pro aktivační událost. Aktivační událost se zadanou frequency hodnotou změní její opakování na základě plánu opakování. Vlastnost schedule obsahuje úpravy opakování, které jsou založeny na minutách, hodinách, pracovních dnech, dnech měsíce a čísle týdne.

Důležité

V případě časového pásma startTime UTC a endTime potřebujete postupovat podle formátu yyyy-MM-ddTHH:mm:ssZ. Pro jiná časová pásma startTime a endTime postupujte podle yyyy-MM-ddTHH:mm:ss formátu.

Podle standardu ISO 8601 se přípona Z používá k označení data a času do časového pásma UTC a vykreslení timeZone pole nepoužitelně. Pokud 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 Časové pásmo UTC: "startTime" : "2013-01-09T09:30:00-08:00Z"
Pro jiná časová pásma: "2013-01-09T09:30:00-08:00"
timeZone String Ano Nic Hodnoty časového pásma "UTC"
recurrence Object 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, která představuje čas v budoucnu Časové pásmo UTC: "endTime" : "2013-02-09T09:30:00-08:00Z"
Pro jiná časová pásma: "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ánu.

Časové pásmo Posun UTC (bez letního času) hodnota timeZone 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 na portálu.

Vlastnost startTime

Následující tabulka ukazuje, jak startTime vlastnost řídí spuštění triggeru.

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 recurrence je definována nastavením frequency vlastnosti na day a interval vlastnost na 2.) Všimněte si, že startTime hodnota je v minulosti a dochází před aktuálním časem.

Za těchtopodmínekch 2017-04-09 14: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-07 2:00pmpočáteční čas , takže další instance je dva dny od této doby, což je 2017-04-09 v 2:00pm.

První spuštění je stejné i v případě, že startTime hodnota je 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-11 2:00pm, pak 2017-04-13 v 2:00pm, pak v , pak 2017-04-15 v 2:00pma tak dále.

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

Vlastnost schedule

Použití plánu může omezit počet spuštění triggerů. 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í.

Plán může také rozšířit počet spuštění triggerů. 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 první a druhý den v měsíci.

Pokud je zadáno více schedule prvků, pořadí vyhodnocení je od největšího po nejmenší nastavení plánu. Vyhodnocení začíná číslem týdne a pak dnem měsíce, dnem v týdnu, hodinou a nakonec minutou.

Následující tabulka podrobně popisuje schedule prvky.

Element JSON Popis Platné hodnoty
minutes Minuty v hodině, ve kterých se aktivační událost spouští.
  • Celé číslo
  • Pole celých čísel
hours Hodiny dne, ve kterých se aktivační událost spouští.
  • Celé číslo
  • 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.
  • Pondělí, úterý, středa, čtvrtek, pátek, sobota, neděle.
  • Matice hodnot dnů (maximální velikost pole je 7).
  • V hodnotách dnů se nerozlišuje 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.
  • monthlyOccurrences Pole objektů: { "day": day, "occurrence": occurrence }.
  • Atribut day je den v týdnu, ve kterém se trigger spouští. Například monthlyOccurrences vlastnost s day hodnotou {Sunday} znamená každou neděli v měsíci. day Atribut je vyžadován.
  • Atribut occurrence je výskyt zadaný day během měsíce. Například monthlyOccurrences vlastnost s day hodnotami occurrence {Sunday, -1} a hodnotami znamená poslední neděli v měsíci. Atribut occurrence je nepovinný.
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í a zaměřuje se na schedule objekt a jeho prvky.

Příklady předpokládají, že interval hodnota je 1 a že frequency hodnota je správná podle definice plánu. Například nemůžete mít frequency hodnotu day a také upravit monthDays schedule objekt. 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 jsou řízeny startTime hodnotou, pokud je zadána hodnota. 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 ekvivalentní tomu, že má aktivační událost s frequency hodnotou , interval hodnotu hour1, a ne schedule. Tento plán lze použít s různými frequency hodnotami a interval vytvořit další triggery. Například pokud frequency je monthhodnota , plán se spustí pouze jednou za měsíc, nikoli každý den, pokud frequency je dayhodnota .
{"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 ekvivalentní aktivační události s frequency hodnotou hour a startTime hodnotou nula minut, nebo ne schedule , ale frequency hodnotou day. frequency Pokud je week hodnota nebo month, plán se spustí pouze jeden den v týdnu nebo jeden den 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í v 6:00 na 28. den každého měsíce (za předpokladu frequency monthhodnoty ).
{"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 v měsíci není žádný pátý pátek, kanál se nespustí, protože je naplánovaný tak, aby běžel jenom v pátém pátek. Pokud chcete trigger spustit v poslední pátek v měsíci, zvažte použití hodnoty -1 místo 5 occurrence .
{"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.