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.
Přepněte na kartu Upravit ve službě Data Factory nebo na kartě Integrace ve službě Azure Synapse.
V nabídce vyberte Aktivační událost a pak vyberte Nová / upravit.
Na stránce Přidat triggery vyberte Zvolit aktivační událost a pak vyberte Nový.
Na stránce Nový trigger:
Potvrďte, že je pro typ vybraný plán.
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).
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.
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 .
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í.
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í.
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.
V okně Nový trigger zkontrolujte zprávu upozornění a pak vyberte OK.
Výběrem možnosti Publikovat vše publikujte změny. Dokud změny nepublikujete, trigger nespustí spuštění kanálu.
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.
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
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Azure PowerShell: Postupujte podle pokynů v tématu Instalace Azure PowerShellu ve Windows pomocí modulu PowerShellGet.
Ukázkový kód
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 elementuendTime
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 naScheduleTrigger
.Prvek
frequency
je nastavenMinute
na ainterval
prvek je nastaven na15
. 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
aendTime
.Element
endTime
je jedna hodina za hodnotou elementustartTime
. 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 aendTime
potřebujete postupovat podle formátuyyyy-MM-ddTHH:mm:ss
Z. Pro jiná časová pásmastartTime
aendTime
postupujte podleyyyy-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
aoutputPath
. Hodnoty těchto parametrů předáte z triggeru.
Vytvořte trigger pomocí rutiny Set-AzDataFactoryV2Trigger :
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Pomocí rutiny Get-AzDataFactoryV2Trigger ověřte, že je stav triggeru Zastaveno:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Spusťte trigger pomocí rutiny Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Pomocí rutiny Get-AzDataFactoryV2Trigger ověřte, že je trigger spuštěný:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
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
aTriggerRunStartedBefore
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
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Ukázkový kód
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 elementuendTime
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 naScheduleTrigger
.Prvek
frequency
je nastavenMinute
na ainterval
prvek je nastaven na15
. 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
aendTime
.Element
endTime
je jedna hodina za hodnotou elementustartTime
. 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átyyyy-MM-ddTHH:mm:ss
Z. Pro jiná časová pásmastartTime
aendTime
postupujte podleyyyy-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
aoutputPath
. Hodnoty těchto parametrů předáte z triggeru.
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
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"
Spuštění triggeru pomocí příkazu start triggeru az datafactory:
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
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"
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
, , SliceEnd
WindowStart
a 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:ss formá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:ss formát . |
timeZone |
Časové pásmo, ve kterém se trigger vytvoří. Toto nastavení má vliv na startTime , endTime a 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 , , interval endTime , count a 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 , week a 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:ss
Z. 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:00pm
počá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:00pm
a 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í. |
|
hours |
Hodiny dne, ve kterých se aktivační událost spouští. |
|
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. |
|
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. |
|
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. |
|
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 hour 1 , 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 month hodnota , plán se spustí pouze jednou za měsíc, nikoli každý den, pokud frequency je day hodnota . |
{"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 month hodnoty ). |
{"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. |
Související obsah
- Další informace o aktivačních událostech najdete v tématu Spouštění kanálů a triggery.
- Informace o odkazování na metadata triggeru v kanálu najdete v tématu Referenční metadata aktivační události v spuštění kanálu.