Skapa en utlösare som kör en pipeline enligt ett schema

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

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 att en pipeline ska köras regelbundet (varje timme, varje dag osv.).

Anteckning

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.

    Menyn Ny utlösare

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

    Lägg till utlösare – ny utlösare

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

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

    2. Ange startdatumtid 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ösaren betraktas som efter startdatumet (se till att startdatumet är minst 1 minut mindre än körningstiden, annars utlöses pipelinen vid nästa upprepning).

      Anteckning

      För tidszoner som observerar sommartid justeras utlösartiden automatiskt för ändringen två gånger per år, om upprepningen är inställd på Dagar eller högre. 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å 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 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 väljer "Day(s), Week(s) or Month(s) (Dagar), Week(s) eller Month(s)" (Dagar), Week(s) eller Month(s)) i listrutan finns "Avancerade upprepningsalternativ". Avancerade upprepningsalternativ för dag(er), veckor eller månader

    6. Om du vill ange ett slutdatum 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.

      Inställningar för utlösare

      Utlösarinställningar för slutdatum

  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.

    Inställningar för utlösare – knappen Nästa

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

    Inställningar för utlösare – knappen Slutför

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

    Knappen Publicera

  7. Växla till fliken Pipelinekörningar till vänster och välj sedan Uppdatera för att uppdatera listan. Pipelinekörningarna som utlöses av den schemalagda utlösaren visas. Observera värdena i kolumnen Aktiverad av. Om du använder alternativet Utlös nu visas den manuella utlösaren i listan.


  1. Växla till vyn Schema för utlösarekörningar \ .


Azure PowerShell

Anteckning

För att interagera med Azure rekommenderar vi Azure Az PowerShell-modulen. 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 hur det här exemplet fungerar går du först igenom Snabbstart: Skapa en datafabrik med hjälp av Azure PowerShell. Lägg sedan till följande kod i main-metoden, 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 aktuell UTC-tid.

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

    • Frequency-elementet är inställt på "Minute" och interval-elementet är inställt på 15. Därför kör utlösaren pipelinen var 15:e minut mellan start- och sluttiderna.

    • TimeZone-elementet anger den tidszon 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 aktuell UTC-tid 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, Z-suffixet för tidsstämpel markerar datetime till UTC-tidszonen och återger timeZone-fältet oanvändbart. Om Z-suffix saknas för UTC-tidszonen resulterar det i ett fel vid aktivering av utlösaren.

    • Utlösaren är associerad med Adfv2QuickStartPipeline-pipelinen . Om du vill associera flera pipelines med en utlösare lägger du till fler pipelineReference-avsnitt .

    • Pipelinen i snabbstarten tar två parametervärden : 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. Om du vill hämta information om utlösarkörningarna kör du följande kommando med jämna mellanrum. 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"
    

    Anteckning

    Utlösartiden 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 Portal 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 hur det här exemplet fungerar går du först igenom Snabbstart: 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

Du kan använda antingen Azure Cloud Shell eller ett lokalt Azure CLI.

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 aktuell UTC-tid.

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

    • Frequency-elementet är inställt på "Minute" och interval-elementet är inställt på 15. Därför kör utlösaren pipelinen var 15:e minut mellan start- och sluttiderna.

    • TimeZone-elementet anger den tidszon 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 aktuell UTC-tid 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, Z-suffixet för tidsstämpel markerar datetime till UTC-tidszonen och återger timeZone-fältet oanvändbart. Om Z-suffix saknas för UTC-tidszonen resulterar det i ett fel vid aktivering av utlösaren.

    • Utlösaren är associerad med Adfv2QuickStartPipeline-pipelinen . Om du vill associera flera pipelines med en utlösare lägger du till fler pipelineReference-avsnitt .

    • Pipelinen i snabbstarten tar två parametervärden : 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 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 är Stoppad med hjälp av 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 startkommandot az datafactory trigger :

    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 . Om du vill få information om utlösarkörningarna kör du följande kommando med jämna mellanrum. 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"
    

    Anteckning

    Utlösartiden 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 Portal 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 hur det här exemplet fungerar går du först igenom Snabbstart: Skapa en datafabrik med hjälp av .NET SDK. Lägg sedan till följande kod i main-metoden, 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);

Om du vill 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 Portal 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 det här exemplet fungera går du först igenom Snabbstart: 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 aktuell UTC-tid.

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

Översikt över schema

I följande tabell ges en översikt över de viktigaste schemaelementen relaterade till upprepning och schemaläggning i en utlösare:

JSON-egenskap Description
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 andra tidszoner ä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 andra tidszoner är 'yyyy-MM-ddTHH:mm:ss'formatet .
Tidszon Tidszonen som utlösaren skapas i. Den här inställningen påverkar startTime, endTime och schema. Se listan över tidszoner som stöds
Återkommande 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.
Frekvens Frekvensen som utlösaren ska upprepas med. Du kan använda värden som ”minute”, ”hour”, ”day”, ”week” och ”month”.
Intervall 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.
Schema 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, Z-suffixet för tidsstämpel markerar datetime till UTC-tidszonen och återger timeZone-fältet oanvändbart. Om Z-suffix saknas för UTC-tidszonen resulterar det i ett fel vid aktivering av utlösaren.

Standardvärden för scheman, begränsningar och exempel

JSON-egenskap Typ Obligatorisk Standardvärde Giltiga värden Exempel
Starttime Sträng Yes Ingen ISO 8601-datum/tid för UTC-tidszon "startTime" : "2013-01-09T09:30:00-08:00Z"
för andra tidszoner "2013-01-09T09:30:00-08:00"
Tidszon Sträng Yes Ingen Tidszonsvärden "UTC"
Återkommande Objekt Yes Ingen Upprepningsobjekt "recurrence" : { "frequency" : "monthly", "interval" : 1 }
Intervall Antal No 1 1 till 1 000 "interval":10
Endtime Sträng Yes Ingen 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 andra tidszoner "endTime" : "2013-02-09T09:30:00-08:00"
Schema Objekt No Ingen Schemaobjekt "schedule" : { "minute" : [30], "hour" : [8,17] }

Tidszonsalternativ

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
Koordinerad universell tid 0 UTC No 'yyyy-MM-ddTHH:mm:ssZ'
Pacific Time (PT) -8 Pacific Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Central tid (CT) −6 Central Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Östlig tid (ET) -5 Eastern Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Greenwich Mean Time (GMT) 0 GMT Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Centraleuropeiska standardtid +1 W. Europe Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
India Standard Time (IST) +5:30 India Standard Time No 'yyyy-MM-ddTHH:mm:ss'
China Standard Time +8 China Standard Time No 'yyyy-MM-ddTHH:mm:ss'

Den här listan är ofullständig. Om du vill ha en fullständig lista över alternativ för tidszoner kan du utforska sidan Utlösare på sidan utlösare

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 ställa in egenskapen frequency till "day" och intervallegenskapen till 2.) Observera att startTime-värdet är i det förflutna och inträffar före den aktuella tiden.

Under dessa villkor ä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 vid 2017-04-112:00pm, sedan 2017-04-13 vid 2:00pm2:00pm, och 2017-04-15 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 Description Giltiga värden
Minuter Minuter för den timme då utlösaren körs.
  • Integer
  • Heltalsmatris
Timmar 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 ha ett frekvensvärde på "dag" och även ha en "monthDays"-ändring i schemaobjektet . De här begränsningarna tas upp i tabellen i föregående avsnitt.

Exempel Description
{"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.

Det här schemat motsvarar att ha en utlösare med ett frekvensvärde på "timme", ett intervallvärde på 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 frekvensvärdet till exempel är "månad" körs schemat bara en gång i månaden, i stället för varje dag, när frekvensvärdet är "dag".
{"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.

Nästa steg