Skapa en utlösare som kör en pipeline enligt ett schema
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln innehåller information om schemautlösaren och stegen för att skapa, starta och övervaka en schemautlösare. Andra typer av utlösare finns i Pipelinekörning och utlösare.
När du skapar en schemautlösare anger du ett schema (startdatum, upprepning, slutdatum osv.) för utlösaren och associerar med en pipeline. Pipeliner och utlösare har en många-till-många-relation. Flera utlösare kan starta en pipeline. En enskild utlösare kan starta flera pipeliner.
Följande avsnitt innehåller steg för att skapa en schemautlösare på olika sätt.
Azure Data Factory- och Synapse-portalen
Du kan skapa en schemautlösare för att schemalägga en pipeline som ska köras regelbundet (varje timme, varje dag osv.).
Kommentar
En fullständig genomgång av hur du skapar en pipeline och en schemautlösare, som associerar utlösaren med pipelinen, och kör och övervakar pipelinen finns i Snabbstart: skapa en datafabrik med hjälp av Data Factory-användargränssnittet.
Växla till fliken Redigera i Data Factory eller fliken Integrera i Azure Synapse.
Välj Utlösare på menyn och välj sedan Ny/Redigera.
På sidan Lägg till utlösare väljer du Välj utlösare... och sedan +Nytt.
Gör följande på sidan Ny utlösare :
Bekräfta att Schema har valts för Typ.
Ange startdatumtiden för utlösaren för startdatum. Den är inställd på aktuell datetime i Coordinated Universal Time (UTC) som standard.
Ange den tidszon som utlösaren ska skapas i. Tidszonsinställningen gäller startdatum, slutdatum och schemakörningstider i avancerade upprepningsalternativ. Om du ändrar tidszonsinställningen ändras inte startdatumet automatiskt. Kontrollera att startdatumet är korrekt i den angivna tidszonen. Observera att schemalagd körningstid för utlösare kommer att betraktas som efter startdatumet (se till att startdatumet är minst 1 minut mindre än körningstiden, annars utlöses pipelinen vid nästa upprepning).
Kommentar
För tidszoner som observerar sommartid justeras utlösartiden automatiskt för ändringen två gånger om året, om upprepningen är inställd på Dagar eller senare. Om du vill avregistrera dig från sommartidsändringen väljer du en tidszon som inte observerar sommartid, till exempel UTC
Viktigt!
Sommartidsjustering sker endast för utlösare med upprepning inställd på Dagar eller senare. Om utlösaren är inställd på Frekvens för timmar eller minuter fortsätter den att utlösas med jämna mellanrum.
Ange Upprepning för utlösaren. Välj ett av värdena i listrutan (Varje minut, Varje minut, Varje timme, Varje dag, Varje vecka och Varje månad). Ange multiplikatorn i textrutan. Om du till exempel vill att utlösaren ska köras en gång var 15:e minut väljer du Varje minut och anger 15 i textrutan.
Om du i listrutan Återkommande väljer "Dag(er), Vecka eller Månad(er)" kan du hitta "Avancerade upprepningsalternativ".
Om du vill ange en slutdatumtid väljer du Ange ett slutdatum och anger Slutar på och väljer sedan OK. Det finns ingen associerad kostnad till varje pipelinekörning. Om du testar kanske du vill se till att pipelinen bara utlöses ett par gånger. Men se till att det finns tillräckligt med tid att köra pipelinen mellan publiceringstiden och sluttiden. Utlösaren träder i kraft först när du har publicerat lösningen, inte när du sparar utlösaren i användargränssnittet.
I fönstret Ny utlösare väljer du Ja i alternativet Aktiverad och väljer sedan OK. Du kan använda den här kryssrutan för att inaktivera utlösaren senare.
I fönstret Ny utlösare granskar du varningsmeddelandet och väljer sedan OK.
Välj Publicera alla för att publicera ändringarna. Innan du publicerar ändringarna börjar utlösaren inte utlösa pipelinekörningarna.
Växla till fliken Pipelinekörningar till vänster och välj sedan Uppdatera för att uppdatera listan. Du ser pipelinekörningarna som utlöses av den schemalagda utlösaren. Observera värdena i kolumnen Aktiverad av. Om du använder alternativet Utlösare nu visas den manuella utlösaren i listan.
Växla till vyn Schema för utlösarekörningar \ .
Azure PowerShell
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Det här avsnittet visar hur du använder Azure PowerShell för att skapa, starta och övervaka en schemautlösare. Om du vill se att det här exemplet fungerar går du först igenom snabbstarten : Skapa en datafabrik med hjälp av Azure PowerShell. Lägg sedan till följande kod i huvudmetoden, som skapar och startar en schemautlösare som körs var 15:e minut. Utlösaren är associerad med en pipeline med namnet Adfv2QuickStartPipeline som du skapar som en del av snabbstarten.
Förutsättningar
Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Azure PowerShell. Följ anvisningarna i Installera Azure PowerShell i Windows med PowerShellGet.
Exempelkod
Skapa en JSON-fil med namnet MyTrigger.json i mappen C:\ADFv2QuickStartPSH\ med följande innehåll:
Viktigt!
Innan du sparar JSON-filen anger du värdet för startTime-elementet till aktuell UTC-tid. Ange värdet för endTime-elementet till en timme efter den aktuella UTC-tiden.
{ "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" } } ] } }
I JSON-kodfragmentet:
Typelementet i utlösaren är inställt på "ScheduleTrigger".
Frekvenselementet är inställt på "Minut" och intervallelementet är inställt på 15. Därför kör utlösaren pipelinen var 15:e minut mellan start- och sluttiderna.
TimeZone-elementet anger tidszonen som utlösaren skapas i. Den här inställningen påverkar både startTime och endTime.
EndTime-elementet är en timme efter värdet för startTime-elementet. Därför kör utlösaren pipelinen 15 minuter, 30 minuter och 45 minuter efter starttiden. Glöm inte att uppdatera starttiden till den aktuella UTC-tiden och sluttiden till en timme efter starttiden.
Viktigt!
För UTC-tidszonen måste startTime och endTime följa formatet "åååå-MM-ddTHH:mm:ssZ", medan startTime och endTime för andra tidszoner följer "åååå-MM-ddTHH:mm:ss".
Enligt ISO 8601 standard markerar Z-suffixet för tidsstämpel datetime till UTC-tidszonen och gör timeZone-fältet värdelöst. Om Z-suffix saknas för UTC-tidszonen uppstår ett fel vid aktivering av utlösaren.
Utlösaren är associerad med pipelinen Adfv2QuickStartPipeline . Om du vill associera flera pipelines med en utlösare lägger du till fler pipelineReference-avsnitt .
Pipelinen i snabbstarten tar två parametrar : inputPath och outputPath. Och du skickar värden för dessa parametrar från utlösaren.
Skapa en utlösare med hjälp av cmdleten Set-AzDataFactoryV2Trigger :
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Bekräfta att statusen för utlösaren har stoppats med hjälp av cmdleten Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Starta utlösaren med hjälp av cmdleten Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Bekräfta att statusen för utlösaren är Startad med hjälp av cmdleten Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Hämta utlösaren körs i Azure PowerShell med hjälp av cmdleten Get-AzDataFactoryV2TriggerRun . Kör följande kommando med jämna mellanrum för att hämta information om utlösarkörningarna. Uppdatera värdena TriggerRunStartedAfter och TriggerRunStartedBefore så att de matchar värdena i utlösardefinitionen:
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Kommentar
Utlösarens tid för schemautlösare anges i UTC-tidsstämpeln. TriggerRunStartedAfter och TriggerRunStartedBefore förväntar sig också UTC-tidsstämpel
Information om hur du övervakar utlösarkörningar och pipelinekörningar i Azure-portalen finns i Övervaka pipelinekörningar.
Azure CLI
Det här avsnittet visar hur du använder Azure CLI för att skapa, starta och övervaka en schemautlösare. Om du vill se att det här exemplet fungerar går du först igenom snabbstarten : Skapa en Azure Data Factory med Azure CLI. Följ sedan stegen nedan för att skapa och starta en schemautlösare som körs var 15:e minut. Utlösaren är associerad med en pipeline med namnet Adfv2QuickStartPipeline som du skapar som en del av snabbstarten.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Exempelkod
I arbetskatalogen skapar du en JSON-fil med namnet MyTrigger.json med utlösarens egenskaper. I det här exemplet använder du följande innehåll:
Viktigt!
Innan du sparar JSON-filen anger du värdet för startTime-elementet till aktuell UTC-tid. Ange värdet för endTime-elementet till en timme efter den aktuella UTC-tiden.
{ "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" } } ] }
I JSON-kodfragmentet:
Typelementet i utlösaren är inställt på "ScheduleTrigger".
Frekvenselementet är inställt på "Minut" och intervallelementet är inställt på 15. Därför kör utlösaren pipelinen var 15:e minut mellan start- och sluttiderna.
TimeZone-elementet anger tidszonen som utlösaren skapas i. Den här inställningen påverkar både startTime och endTime.
EndTime-elementet är en timme efter värdet för startTime-elementet. Därför kör utlösaren pipelinen 15 minuter, 30 minuter och 45 minuter efter starttiden. Glöm inte att uppdatera starttiden till den aktuella UTC-tiden och sluttiden till en timme efter starttiden.
Viktigt!
För UTC-tidszonen måste startTime och endTime följa formatet "åååå-MM-ddTHH:mm:ssZ", medan startTime och endTime för andra tidszoner följer "åååå-MM-ddTHH:mm:ss".
Enligt ISO 8601 standard markerar Z-suffixet för tidsstämpel datetime till UTC-tidszonen och gör timeZone-fältet värdelöst. Om Z-suffix saknas för UTC-tidszonen uppstår ett fel vid aktivering av utlösaren.
Utlösaren är associerad med pipelinen Adfv2QuickStartPipeline . Om du vill associera flera pipelines med en utlösare lägger du till fler pipelineReference-avsnitt .
Pipelinen i snabbstarten tar två parametrar : inputPath och outputPath. Och du skickar värden för dessa parametrar från utlösaren.
Skapa en utlösare med kommandot az datafactory trigger create :
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
Bekräfta att statusen för utlösaren stoppas med kommandot az datafactory trigger show:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Starta utlösaren med hjälp av kommandot az datafactory trigger start :
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Bekräfta att statusen för utlösaren är Startad med kommandot az datafactory trigger show :
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Hämta utlösaren körs i Azure CLI med hjälp av kommandot az datafactory trigger-run query-by-factory . Kör följande kommando med jämna mellanrum för att få information om utlösarkörningarna. Uppdatera värdena last-updated-after och last-updated-before så att de matchar värdena i utlösardefinitionen:
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"
Kommentar
Utlösarens tid för schemautlösare anges i UTC-tidsstämpeln. last-updated-after och last-updated-before förväntar sig också UTC-tidsstämpel
Information om hur du övervakar utlösarkörningar och pipelinekörningar i Azure-portalen finns i Övervaka pipelinekörningar.
.NET SDK
Det här avsnittet visar hur du använder .NET SDK för att skapa, starta och övervaka en utlösare. Om du vill se att det här exemplet fungerar går du först igenom snabbstarten : Skapa en datafabrik med hjälp av .NET SDK. Lägg sedan till följande kod i huvudmetoden, som skapar och startar en schemautlösare som körs var 15:e minut. Utlösaren är associerad med en pipeline med namnet Adfv2QuickStartPipeline som du skapar som en del av snabbstarten.
Om du vill skapa och starta en schemautlösare som körs var 15:e minut lägger du till följande kod i huvudmetoden:
// 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);
För att skapa utlösare i en annan tidszon än UTC krävs följande inställningar:
<<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;
Om du vill övervaka en utlösarkörning lägger du till följande kod före den sista Console.WriteLine
instruktionen i exemplet:
// 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();
}
}
}
Information om hur du övervakar utlösarkörningar och pipelinekörningar i Azure-portalen finns i Övervaka pipelinekörningar.
Python SDK
Det här avsnittet visar hur du använder Python SDK för att skapa, starta och övervaka en utlösare. Om du vill se att det här exemplet fungerar går du först igenom snabbstarten : Skapa en datafabrik med hjälp av Python SDK. Lägg sedan till följande kodblock efter kodblocket "övervaka pipelinekörningen" i Python-skriptet. Den här koden skapar en schemautlösare som körs var 15:e minut mellan de angivna start- och sluttiderna. Uppdatera variabeln start_time till aktuell UTC-tid och variabeln end_time till en timme efter den aktuella UTC-tiden.
# 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)
Information om hur du övervakar utlösarkörningar och pipelinekörningar i Azure-portalen finns i Övervaka pipelinekörningar.
Azure Resource Manager-mall
Du kan använda en Azure Resource Manager-mall för att skapa en utlösare. Stegvisa instruktioner finns i Skapa en Azure-datafabrik med hjälp av en Resource Manager-mall.
Skicka utlösarens starttid till en pipeline
Azure Data Factory version 1 stöder läsning eller skrivning av partitionerade data med hjälp av systemvariablerna: SliceStart, SliceEnd, WindowStart och WindowEnd. I den aktuella versionen av Azure Data Factory- och Synapse-pipelines kan du uppnå det här beteendet med hjälp av en pipelineparameter. Starttiden och den schemalagda tiden för utlösaren anges som värde för pipelineparametern. I följande exempel skickas den schemalagda tiden för utlösaren som ett värde till pipelinen scheduledRunTime-parametern :
"parameters": {
"scheduledRunTime": "@trigger().scheduledTime"
}
JSON-schema
Följande JSON-definition visar hur du skapar en schemautlösare med schemaläggning och upprepning:
{
"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>"
}
}
]
}
}
Viktigt!
Egenskapen parameters är en obligatorisk egenskap i elementet pipelines. Om din pipeline inte tar emot några parametrar måste du ta med en JSON-definition för egenskapen parameters.
Schemaöversikt
I följande tabell ges en översikt över de viktigaste schemaelementen relaterade till upprepning och schemaläggning i en utlösare:
JSON-egenskap | beskrivning |
---|---|
startTime | Ett datum/tid-värde. För enkla scheman gäller värdet för egenskapen startTime den första förekomsten. För komplexa scheman startar utlösaren tidigast vid det angivna värdet för startTime. För UTC-tidszonen är 'yyyy-MM-ddTHH:mm:ssZ' formatet , för annan tidszon är 'yyyy-MM-ddTHH:mm:ss' formatet . |
endTime | Slutdatum och tidpunkt för utlösaren. Utlösaren körs inte efter angivet slutdatum och sluttid. Värdet för egenskapen kan inte ha passerat. Den här egenskapen är valfri. För UTC-tidszonen är 'yyyy-MM-ddTHH:mm:ssZ' formatet , för annan tidszon är 'yyyy-MM-ddTHH:mm:ss' formatet . |
timeZone | Tidszonen som utlösaren skapas i. Den här inställningen påverkar startTime, endTime och schema. Se en lista över tidszoner som stöds |
recurrence | Ett upprepningsobjekt som anger upprepningsregler för utlösaren. Upprepningsobjektet har stöd för elementen frequency (frekvens), interval (intervall), endTime (sluttid), count (antal) och schedule (schema). När du definierar ett upprepningsobjekt är elementet frequency obligatoriskt. De andra elementen är valfria. |
frequency | Frekvensen som utlösaren ska upprepas med. Du kan använda värden som ”minute”, ”hour”, ”day”, ”week” och ”month”. |
interval | Ett positivt heltal som anger intervallet för värdet för frequency och som avgör hur ofta utlösaren körs. Om interval till exempel är 3 och frequency är ”week” (vecka) upprepas utlösaren var tredje vecka. |
schedule | Upprepningsschemat för utlösaren. En utlösare med ett angivet värde för frequency ändrar sin upprepning baserat på ett upprepningsschema. Egenskapen schedule innehåller ändringar för upprepningen som baseras på minuter, timmar, veckodagar, dagar i månaden och veckonummer. |
Viktigt!
För UTC-tidszonen måste startTime och endTime följa formatet "åååå-MM-ddTHH:mm:ssZ", medan startTime och endTime för andra tidszoner följer "åååå-MM-ddTHH:mm:ss".
Enligt ISO 8601 standard markerar Z-suffixet för tidsstämpel datetime till UTC-tidszonen och gör timeZone-fältet värdelöst. Om Z-suffix saknas för UTC-tidszonen uppstår ett fel vid aktivering av utlösaren.
Standardvärden för scheman, begränsningar och exempel
JSON-egenskap | Typ | Obligatoriskt | Default value | Giltiga värden | Exempel |
---|---|---|---|---|---|
startTime | String | Ja | None | ISO 8601-datum/tid | för UTC-tidszon "startTime" : "2013-01-09T09:30:00-08:00Z" för annan tidszon "2013-01-09T09:30:00-08:00" |
timeZone | String | Ja | None | Tidszonsvärden | "UTC" |
recurrence | Object | Ja | None | Upprepningsobjekt | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
interval | Antal | Nej | 1 | 1 till 1 000 | "interval":10 |
endTime | String | Ja | None | Ett datum/tid-värde som representerar en tidpunkt i framtiden. | för UTC-tidszon "endTime" : "2013-02-09T09:30:00-08:00Z" för annan tidszon "endTime" : "2013-02-09T09:30:00-08:00" |
schedule | Object | Nej | Ingen | Schemaobjekt | "schedule" : { "minute" : [30], "hour" : [8,17] } |
Alternativ för tidszon
Här är några tidszoner som stöds för schemautlösare:
Tidszon | UTC-förskjutning (icke-sommartid) | timeZone-värde | Observera sommartid | Tidsstämpelformat |
---|---|---|---|---|
Samordnad universell tid | 0 | UTC |
Nej | 'yyyy-MM-ddTHH:mm:ssZ' |
Pacific Time (PT) | -8 | Pacific Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Central tid (CT) | -6 | Central Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Eastern Time (ET) | -5 | Eastern Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Greenwich Mean Time (GMT) | 0 | GMT Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Centraleuropeiska standardtid | 1+ | W. Europe Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Indien, standardtid (IST) | +5:30 | India Standard Time |
Nej | 'yyyy-MM-ddTHH:mm:ss' |
Kina, standardtid | +8 | China Standard Time |
Nej | 'yyyy-MM-ddTHH:mm:ss' |
Den här listan är ofullständig. En fullständig lista över alternativ för tidszoner finns på sidan Skapa utlösare på portalen
Egenskapen startTime
I följande tabell visas hur egenskapen startTime styr körningen av en utlösare:
startTime-värde | Upprepning utan schema | Upprepning med schema |
---|---|---|
Starttid i förfluten tid | Beräknar första framtida körningstid efter starttiden och körs vid den tidpunkten. Utför efterföljande körningar baserat på beräkningar från senaste körningstid. Se exemplet som följer den här tabellen. |
Utlösaren startar tidigast den angivna starttiden. Den första förekomsten baseras på schemat som beräknas från starttiden. Kör efterföljande körningar baserat på upprepningsschemat. |
Starttid i framtiden eller aktuell tid | Körs en gång på angiven starttid. Utför efterföljande körningar baserat på beräkningar från senaste körningstid. |
Utlösaren startar tidigast den angivna starttiden. Den första förekomsten baseras på schemat som beräknas från starttiden. Kör efterföljande körningar baserat på upprepningsschemat. |
Låt oss se vad som händer när starttiden har passerat, med upprepning men utan schema. Anta att den aktuella tiden är 2017-04-08 13:00
, starttiden är 2017-04-07 14:00
och upprepningen är varannan dag. (Upprepningsvärdet definieras genom att frekvensegenskapen anges till "dag" och intervallegenskapen till 2.) Observera att startTime-värdet är tidigare och inträffar före den aktuella tiden.
Under dessa förhållanden är den första körningen på 2017-04-09
14:00
. Scheduler-motor beräknar körningsförekomster från starttiden. Alla tidigare instanser ignoreras. Motorn använder nästa förekomst som förekommer i framtiden. I det här scenariot är 2017-04-07
starttiden på 2:00pm
, så nästa instans är två dagar från den tiden, som är 2017-04-09
på 2:00pm
.
Den första körningstiden är samma oavsett om värdet för startTime är 2017-04-05 14:00
eller 2017-04-01 14:00
. Efter den första körningen beräknas efterföljande körningar med hjälp av schemat. Därför är de efterföljande körningarna på 2017-04-11
2:00pm
, sedan 2017-04-13
vid 2:00pm
, sedan 2017-04-15
vid 2:00pm
, och så vidare.
När inga timmar eller minuter anges i schemat för en utlösare används som standard samma timmar och minuter som i den första körningen.
Egenskapen schedule
Å ena sidan kan ett schema begränsa antalet utlösarkörningar. Om en utlösare med månatlig frekvens till exempel har ett schema som bara körs dag 31 så körs utlösaren bara de månader som har en 31:a dag.
Ett schema kan å andra sidan även utöka antalet utlösarkörningar. En utlösare med månatlig frekvens som har schemalagts för att köras dag 1 och 2 körs två snarare än en gång i månaden.
Om du anger flera schedule-element utvärderas de från största till minsta schemainställning. Utvärderingen börjar med veckonummer, sedan dag i månaden, veckodag, timme och slutligen minut.
I följande tabell beskrivs schedule-elementen i detalj:
JSON-element | beskrivning | Giltiga värden |
---|---|---|
minutes | Minuter för den timme då utlösaren körs. |
|
hours | Timmar på dagen då utlösaren körs. |
|
weekDays | Veckodagar som utlösaren körs på. Värdet kan bara anges med en veckofrekvens. |
|
monthlyOccurrences | Dagar i månaden som utlösaren körs på. Värdet kan bara anges med en månadsfrekvens. |
|
monthDays | Dagar i månaden som utlösaren körs på. Värdet kan bara anges med en månadsfrekvens. |
|
Exempel på scheman för upprepning av utlösare
I det här avsnittet ges exempel på upprepningsscheman med fokus på objektet schedule och dess element.
I exemplen antas att värdet för interval är 1 och att värdet för frequency är giltigt enligt schemadefinitionen. Du kan till exempel inte använda frequency-värdet ”day” och samtidigt ha en ”monthDays”-modifiering i schedule-objektet. De här begränsningarna tas upp i tabellen i föregående avsnitt.
Exempel | beskrivning |
---|---|
{"hours":[5]} |
Kör kl. 05.00 varje dag. |
{"minutes":[15], "hours":[5]} |
Kör kl. 05.15 varje dag. |
{"minutes":[15], "hours":[5,17]} |
Kör kl. 05.15 och 17.15 varje dag |
{"minutes":[15,45], "hours":[5,17]} |
Kör kl. 05.15, 5.45, 17.15 och 17.45 varje dag. |
{"minutes":[0,15,30,45]} |
Kör var 15:e 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]} |
Kör varje timme. Den här utlösaren körs varje timme. Minuterna styrs av startTime-värdet när du anger ett sådant. Om du inte anger något värde styrs minuterna av tiden för skapandet. Om starttiden eller skapandetiden (beroende på vilken som gäller) till exempel är 00.25 körs utlösaren 00.25, 01.25, 02.25, …, 23:25. Schemat motsvarar att ha en utlösare med frequency-värdet hour (timme), interval-värdet 1 och inget schema. Det här schemat kan användas med andra värden för frequency och interval om du vill skapa andra utlösare. När värdet för frequency till exempel är ”month” körs schemat bara en gång i månaden, snarare än varje dag när värdet för frequency är ”day”. |
{"minutes":[0]} |
Körs varje hel timme. Den här utlösaren körs varje timma med början vid 00.00, 01.00, 02.00 och så vidare. Det här schemat motsvarar en utlösare med ett frekvensvärde på "timme" och ett startTime-värde på noll minuter, eller inget schema men ett frekvensvärde på "dag". Om frekvensvärdet är "vecka" eller "månad" körs schemat endast en dag i veckan eller en dag i månaden. |
{"minutes":[15]} |
Körs 15 minuter efter varje hel timme. Den här utlösaren körs 15 minuter efter varje timme med början vid 00.15, 01.15, 02.15 och så vidare. |
{"hours":[17], "weekDays":["saturday"]} |
Körs 17.00 varje lördag. |
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Körs 17.00 varje måndag, onsdag och fredag. |
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Körs 17.15 och 17.45 varje måndag, onsdag och fredag. |
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Körs var 15:e minut på vardagar. |
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Körs var 15:e minut på vardagar mellan 09.00 och 16.45. |
{"weekDays":["tuesday", "thursday"]} |
Körs varje tisdag och torsdag den angivna starttiden. |
{"minutes":[0], "hours":[6], "monthDays":[28]} |
Körs 06.00 den 28:e dagen varje månad (förutsatt att frequency-värdet är ”month”). |
{"minutes":[0], "hours":[6], "monthDays":[-1]} |
Körs 06.00 den sista dagen i månaden. Om du vill köra en utlösare den sista dagen i månaden ska du använda -1 istället för dag 28, 29, 30 eller 31. |
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} |
Körs 06.00 den första och sista dagen varje månad. |
{monthDays":[1,14]} |
Körs den första och den fjortonde dagen i varje månad den angivna starttiden. |
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Körs den första fredagen i varje månad 05.00. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Körs den första fredagen i varje månad vid den angivna starttiden. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} |
Körs den tredje fredagen från slutet av månad, varje månad, vid den angivna starttiden. |
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Körs den första och sista fredagen i varje månad 05.15. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Körs den första och sista fredagen i varje månad vid den angivna starttiden. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} |
Körs den femte fredagen i varje månad vid den angivna starttiden. När det inte finns någon femte fredag i en månad körs inte pipelinen, eftersom den är schemalagd att bara köras på den femte fredagen. Om du vill köra utlösaren på den sista fredagen i månaden kan du använda -1 istället för 5 som värde för occurrence. |
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} |
Körs var 15:e minut den sista fredagen i månaden. |
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} |
Körs 05.15, 05.45, 17.15 och 17.45 den tredje onsdagen varje månad. |
Relaterat innehåll
- Detaljerad information om utlösare finns i Pipelinekörning och utlösare.
- Lär dig hur du refererar till utlösarmetadata i pipeline, se Referensutlösarmetadata i pipelinekörningar