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.

  1. Växla till fliken Redigera i Data Factory eller fliken Integrera i Azure Synapse.


  1. Välj Utlösare på menyn och välj sedan Ny/Redigera.

    New trigger menu

  2. På sidan Lägg till utlösare väljer du Välj utlösare... och sedan +Nytt.

    Add triggers - new trigger

  3. Gör följande på sidan Ny utlösare :

    1. Bekräfta att Schema har valts för Typ.

    2. Ange startdatumtiden för utlösaren för startdatum. Den är inställd på aktuell datetime i Coordinated Universal Time (UTC) som standard.

    3. 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.

    4. 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.

    5. Om du i listrutan Återkommande väljer "Dag(er), Vecka eller Månad(er)" kan du hitta "Avancerade upprepningsalternativ". Advanced recurrence options of Day(s), Week(s) or Month(s)

    6. 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.

      Trigger settings

      Trigger settings for End Date

  4. 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.

    Trigger settings - Next button

  5. I fönstret Ny utlösare granskar du varningsmeddelandet och väljer sedan OK.

    Trigger settings - Finish button

  6. Välj Publicera alla för att publicera ändringarna. Innan du publicerar ändringarna börjar utlösaren inte utlösa pipelinekörningarna.

    Publish button

  7. 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.


  1. 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

Exempelkod

  1. 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.

  2. Skapa en utlösare med hjälp av cmdleten Set-AzDataFactoryV2Trigger :

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. 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"
    
  4. Starta utlösaren med hjälp av cmdleten Start-AzDataFactoryV2Trigger :

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. 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"
    
  6. 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

Exempelkod

  1. 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.

  2. 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  
    
  3. 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" 
    
  4. Starta utlösaren med hjälp av kommandot az datafactory trigger start :

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. 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" 
    
  6. 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-0914: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-092: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-112: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.
  • Integer
  • Heltalsmatris
hours Timmar på dagen då utlösaren körs.
  • Integer
  • Heltalsmatris
weekDays Veckodagar som utlösaren körs på. Värdet kan bara anges med en veckofrekvens.
  • Monday, Tuesday, Wednesday, Thursday, Friday, Saturday och Sunday
  • Matris med dagvärden (maximal matrisstorlek är 7)
  • Dagvärdena är inte skiftlägeskänsliga
monthlyOccurrences Dagar i månaden som utlösaren körs på. Värdet kan bara anges med en månadsfrekvens.
  • Matris med monthlyOccurrence-objekt : { "day": day, "occurrence": occurrence }.
  • Attributet day är veckodagen som utlösaren körs på. Om egenskapen monthlyOccurrences till exempel har day-värdet {Sunday} innebär det varje söndag i månaden. Attributet day är obligatoriskt.
  • Attributet occurrence är förekomsten av day-värdet i månaden. Om egenskapen monthlyOccurrences till exempel har day- och occurrence-värdena {Sunday, -1} innebär det den sista söndagen i månaden. Attributet occurrence är valfritt.
monthDays Dagar i månaden som utlösaren körs på. Värdet kan bara anges med en månadsfrekvens.
  • Valfritt värde <= -1 och >= -31
  • Valfritt värde >= 1 och <= 31
  • Matris med värden

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.