(0) exportieren Drucken
Alle erweitern

Entitätshierarchie, Konzepte und Terminologie des Zeitplanungsmoduls

Letzte Aktualisierung: April 2014

In der folgenden Tabelle sind die wichtigsten Ressourcen beschrieben, die von der Zeitplanungsmodul-API verfügbar gemacht oder verwendet werden:

 

Ressource Beschreibung

Cloud service

Vom Konzept her stellt ein Cloud-Dienst eine Anwendung dar. Ein Abonnement kann über mehrere Cloud-Dienste verfügen.

Job collection

Eine Auftragsauflistung enthält eine Gruppe mit Aufträgen sowie Einstellungen, Kontingente und Drosselungen, die von Aufträgen der Auflistung gemeinsam verwendet werden. Eine Auftragsauflistung wird von einem Abonnementbesitzer erstellt. Darin sind Aufträge anhand der Nutzung oder basierend auf Anwendungsgrenzen gruppiert. Sie ist auf eine Region beschränkt. Außerdem ermöglicht sie die Erzwingung von Kontingenten, um die Nutzung aller Aufträge der Auflistung zu beschränken. Beispiele für Kontingente sind MaxJobs und MaxRecurrence.

Job

Mit einem Auftrag wird eine einzelne wiederkehrende Aktion definiert, wobei einfache oder komplexe Strategien für die Ausführung gelten. Aktionen können HTTP-Anforderungen oder Speicherwarteschlangenanforderungen umfassen.

Job history

In einem Auftragsverlauf sind Details für eine Ausführung eines Auftrags dargestellt. Er enthält Informationen zum Erfolg oder Misserfolg sowie die Antwortdetails.

Grob gesehen werden vom Zeitplanungsmodul und der Dienstverwaltungs-API auf den Ressourcen die folgenden Vorgänge verfügbar gemacht:

 

Funktion Beschreibung und URI-Adresse

Cloud service management

GET-, PUT- und DELETE-Unterstützung zum Erstellen und Ändern von Cloud-Diensten

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}

Job collection management

GET-, PUT- und DELETE-Unterstützung zum Erstellen und Ändern von Auftragsauflistungen und die darin enthaltenen Aufträge. Eine Auftragsauflistung ist ein Container für Aufträge, die über Zuordnungen zu Kontingenten und gemeinsam genutzten Einstellungen verfügt. Beispiele für Kontingente, die später beschrieben werden, sind die maximale Anzahl von Aufträgen und das kleinste Wiederholungsintervall.

PUT & DELETE: https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/jobcollections/{jobCollectionName}

GET: https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}

Job management

GET-, PUT-, POST-, PATCH- und DELETE-Unterstützung zum Erstellen und Ändern von Aufträgen. Alle Aufträge müssen einer bereits vorhandenen Auftragsauflistung angehören, sodass keine implizite Erstellung erfolgt.

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}

Job history management

GET-Unterstützung für das Abrufen des Auftragsausführungsverlaufs für einen Zeitraum von 60 Tagen, z. B. die verstrichene Auftragszeit und Auftragsausführungsergebnisse. Fügt Unterstützung für Abfragezeichenfolgenparameter zum Filtern anhand des Zustands und Status hinzu.

https://management.core.windows.net/{subscriptionId}/cloudservices/{cloudServiceName}/resources/scheduler/~/jobcollections/{jobCollectionName}/jobs/{jobId}/history

Generell verfügt ein geplanter Auftrag über mehrere Teile:

  1. Auszuführende Aktion bei Auslösung des Auftragszeitgebers

  2. (Optional) Uhrzeit für Ausführung des Auftrags

  3. (Optional) Wiederholung des Auftrags (wann und wie oft)

  4. (Optional) Auszulösende Aktion, wenn für die primäre Aktion ein Fehler auftritt

Intern enthält ein geplanter Auftrag auch vom System bereitgestellte Daten, z. B. die Uhrzeit der nächsten geplanten Ausführung.

Unten folgt ein umfassendes Beispiel für einen Zeitplanungsauftrag. Die Details werden in den nachfolgenden Abschnitten beschrieben.


{
    "startTime": "2012-08-04T00:00Z",               // optional
    "action": 
    {
        "type": "http",
        "retryPolicy": { "retryType":"none" },
        "request":
        {
            "uri": "http://contoso.com/foo",        // required
            "method": "PUT",                        // required
            "body": "Posting from a timer",         // optional
            "headers":                              // optional

            {
                "Content-Type": "application/json"
            },
        },
       "errorAction": 
       {
           "type": "http",
           "request":
           {
               "uri": "http://contoso.com/notifyError", 
               "method": "POST",                       
           },
       },
    },
    "recurrence":                                   // optional
    {
        "frequency": "week",                        // can be "year" "month" "day" "week" "minute"
        "interval": 1,                              // optional, how often to fire (default to 1)
        "schedule":                                 // optional (advanced scheduling specifics)
        {
            "weekDays": ["monday", "wednesday", "friday"],
            "hours": [10, 22]                      
        },
        "count": 10,                                 // optional (default to recur infinitely)
        "endTime": "2012-11-04",                     // optional (default to recur infinitely)
    },
    "state": "disabled",                           // enabled or disabled
    "status":                                       // controlled by Scheduler service
    {
        "lastExecutionTime": "2007-03-01T13:00:00Z", 
        "nextExecutionTime": "2007-03-01T14:00:00Z ", 
        "executionCount": 3,
         "failureCount": 0,
         "faultedCount": 0
    },
}

Wie im obigen Beispiel für einen Zeitplanungsauftrag zu sehen ist, besteht eine Auftragsdefinition aus mehreren Teilen:

  1. Startzeit ("startTime")

  2. Aktion ("action") mit Fehleraktion ("errorAction")

  3. Wiederholung ("recurrence")

  4. Zustand ("state")

  5. Status ("status")

  6. Wiederholungsrichtlinie ("retryPolicy")

Die Details dazu lauten:

"startTime" ist die Startzeit. Damit können Aufrufer im Netzwerk im Format ISO-8601 einen Zeitzonenoffset angeben.

"action" ist die Aktion, die bei jedem Vorkommen aufgerufen wird, und beschreibt eine Art von Dienstaufruf. Die Aktion ist das, was nach dem bereitgestellten Zeitplan ausgeführt wird. Derzeit unterstützt das Zeitplanungsmodul HTTP- und Speicherwarteschlangenaktionen.

Die Aktion im obigen Beispiel ist eine HTTP-Aktion. Es folgt ein Beispiel für eine Speicherwarteschlangenaktion:


{
        "type": "storageQueue",
        "queueMessage":
        {
            "storageAccount": "myStorageAccount",  // required
            "queueName": "myqueue",                // required
            "sasToken": "TOKEN",                   // required
            "message":                             // required
                "My message body",
        },
}


"errorAction" ist der Fehlerhandler, also die Aktion, die aufgerufen wird, wenn für die primäre Aktion ein Fehler auftritt. Sie können diese Variable verwenden, um einen Fehlerbehandlungsendpunkt aufzurufen oder eine Benutzerbenachrichtigung zu senden. So können Sie einen sekundären Endpunkt erreichen, falls der primäre Endpunkt nicht verfügbar ist (z. B bei einem Notfall am Standort des Endpunkts), oder es kann eine Benachrichtigung an einen Fehlerbehandlungsendpunkt gesendet werden. Wie bei der primären Aktion auch, kann die Fehleraktion über eine einfache oder eine zusammengesetzte Logik verfügen, die auf anderen Aktionen basiert.

Die Wiederholung (recurrence) besteht aus mehreren Teilen:

  1. Häufigkeit: Minute, Stunde, Tag, Woche, Monat oder Jahr

  2. Intervall: Intervall mit der angegebenen Häufigkeit für die Wiederholung

  3. Vorgeschriebener Zeitplan: Angabe der Minuten, Stunden, Wochentage, Monate und Monatstage der Wiederholung

  4. Anzahl: Anzahl der Vorkommnisse

  5. Endzeit: Nach der angegebenen Endzeit werden keine Aufträge mehr ausgeführt

Ein Auftrag wird wiederholt, wenn in seiner JSON-Definition ein wiederkehrendes Objekt angegeben ist. Wenn sowohl "count" als auch "endTime" angegeben werden, wird die zuerst eintretende Abschlussregel berücksichtigt.

Der Zustand des Auftrags weist einen von vier Werten auf: "enabled" (aktiviert), "disabled" (deaktiviert), "completed" (abgeschlossen) oder "faulted" (fehlerhaft). Sie können für Aufträge PUT oder PATCH anwenden, um sie auf den Zustand "enabled" oder "disabled" zu aktualisieren. Wenn ein Auftrag sich im Zustand "completed" oder "faulted" befindet, ist dies der endgültige Zustand, der nicht aktualisiert werden kann (der Auftrag kann mit DELETE jedoch gelöscht werden). Beispiel für die state-Eigenschaft:


    "state": "disabled", // enabled, disabled, completed, or faulted

Abgeschlossene und fehlerhafte Aufträge werden nach 60 Tagen gelöscht.

Nachdem ein Zeitplanungsauftrag gestartet wurde, werden Informationen zum aktuellen Status des Auftrags zurückgegeben. Dieses Objekt kann von Benutzern nicht festgelegt werden, sondern es wird vom System festgelegt. Es ist jedoch im Auftragsobjekt enthalten (nicht als separate verknüpfte Ressource), damit der Status eines Auftrags problemlos abgerufen werden kann.

Der Auftragsstatus enthält den Zeitpunkt der vorherigen Ausführung (falls vorhanden), den Zeitpunkt der nächsten geplanten Ausführung (für in Bearbeitung befindliche Aufträge) und die Ausführungsanzahl des Auftrags.

Wenn ein Zeitplanungsauftrag fehlschlägt, kann eine Wiederholungsrichtlinie angegeben werden, um festzulegen, ob und wie die Aktion wiederholt wird. Dazu wird das retryType-Objekt verwendet: Es wird auf none festgelegt, wenn keine Wiederholungsrichtlinie vorhanden ist, wie oben dargestellt. Legen Sie das Objekt auf fixed fest, wenn eine Wiederholungsrichtlinie verwendet wird.

Beim Festlegen einer Wiederholungsrichtlinie können für zwei zusätzliche Einstellungen Werte angegeben werden: ein Wiederholungsintervall (retryInterval) und die Anzahl der Wiederholungen (retryCount).

Das mit dem retryInterval-Objekt angegebene Wiederholungsintervall bezeichnet das Intervall zwischen den Wiederholungen. Der Standardwert und gleichzeitig der minimale Wert ist 1 Minute, und der maximale Wert ist 18 Monate. Der Wert wird im ISO 8601-Format definiert. Auf ähnliche Weise wird die Anzahl der Wiederholungen mit dem retryCount-Objekt festgelegt. Er gibt an, wie viele Wiederholungen ausgeführt werden. Der Standardwert lautet 5 und der maximale Wert 20. Sowohl retryInterval als auch retryCount sind optional. Wenn retryType auf fixed festgelegt wird und keine Werte explizit angegeben werden, wird für beide Objekte der Standardwert verwendet.

Anzeigen:
© 2014 Microsoft