Concetti, terminologia e gerarchia di entità dell'Utilità di pianificazioneScheduler concepts, terminology, + entity hierarchy

Gerarchia di entità dell'Utilità di pianificazioneScheduler entity hierarchy

Nella tabella seguente vengono descritte le risorse principali esposte o usate dall'API dell'Utilità di pianificazione:The following table describes the main resources exposed or used by the Scheduler API:

RisorsaResource DescrizioneDescription
Raccolta di processiJob collection Una raccolta di processi contiene un gruppo di processi e gestisce le impostazioni, le quote e le limitazioni condivise dai processi all'interno della raccolta.A job collection contains a group of jobs and maintains settings, quotas, and throttles that are shared by jobs within the collection. Le raccolte di processi vengono create dal proprietario della sottoscrizione e raggruppano i processi in base ai limiti di utilizzo o dell'applicazione.A job collection is created by a subscription owner and groups jobs together based on usage or application boundaries. È vincolata a un'area.It’s constrained to one region. Consente inoltre di applicare quote per vincolare l'uso di tutti i processi in tale raccolta.It also allows the enforcement of quotas to constrain the usage of all jobs in that collection. Le quote includono MaxJobs e MaxRecurrence.The quotas include MaxJobs and MaxRecurrence.
ProcessoJob Un processo definisce una singola azione ricorrente, con strategie semplici o complesse per l'esecuzione.A job defines a single recurrent action, with simple or complex strategies for execution. Le azioni possono includere HTTP, coda di archiviazione, coda del bus di servizio o richieste di argomento del bus di servizio.Actions may include HTTP, storage queue, service bus queue, or service bus topic requests.
Cronologia processiJob history Una cronologia processi rappresenta i dettagli per l'esecuzione di un processo.A job history represents details for an execution of a job. Contiene esito positivo o negativo, nonché i dettagli della risposta.It contains success vs. failure, as well as any response details.

Gestione di entità dell'utilità di pianificazioneScheduler entity management

A un livello elevato, l'utilità di pianificazione e l'API di gestione servizio espongono le seguenti operazioni sulle risorse:At a high level, the scheduler and the service management API expose the following operations on the resources:

FunzionalitàCapability Descrizione e indirizzo URIDescription and URI address
Gestione delle raccolte di processiJob collection management Supporto di GET, PUT e DELETE per la creazione e la modifica di raccolte di processi e i processi in essi contenuti.GET, PUT, and DELETE support for creating and modifying job collections and the jobs contained therein. Una raccolta di processi è un contenitore per i processi, e mappa quote e impostazioni condivise.A job collection is a container for jobs and maps to quotas and shared settings. Esempi di quote, descritti più avanti, sono il numero massimo di processi e l'intervallo minimo delle ricorrenze.Examples of quotas, described later, are maximum number of jobs and smallest recurrence interval.

PUT e DELETE: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}PUT and DELETE: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}

GET: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}GET: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}

Gestione dei processiJob management Supporto di GET, PUT, POST, PATCH e DELETE per la creazione e modifica di processi.GET, PUT, POST, PATCH, and DELETE support for creating and modifying jobs. Tutti i processi devono appartenere a una raccolta di processi che esiste già, e che non viene creata implicitamente.All jobs must belong to a job collection that already exists, so there is no implicit creation.

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs/{jobName}

Gestione della cronologia dei processiJob history management Supporto GET per il recupero di 60 giorni di cronologia di esecuzioni del processo, ad esempio il tempo di esecuzione del processo e i risultati dell'esecuzione del processo.GET support for fetching 60 days of job execution history, such as job elapsed time and job execution results. Aggiunge il supporto del parametro della stringa di query per filtrare in base a stato e status.Adds query string parameter support for filtering based on state and status.

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Scheduler/jobCollections/{jobCollectionName}/jobs/{jobName}/history

Tipi di processoJob types

Sono disponibili più tipi di processi: processi HTTP, inclusi quelli che supportano SSL, processi della coda di archiviazione, processi della coda del bus di servizio e processi dell'argomento del bus di servizio.There are multiple types of jobs: HTTP jobs (including HTTPS jobs that support SSL), storage queue jobs, service bus queue jobs, and service bus topic jobs. I processi HTTP sono ideali se si dispone di un endpoint di un carico di lavoro o di un servizio esistente.HTTP jobs are ideal if you have an endpoint of an existing workload or service. I processi sulle code di archiviazione consentono di inviare messaggi a code di archiviazione, per cui sono processi ideali per i carichi di lavoro che usano le code di archiviazione.You can use storage queue jobs to post messages to storage queues, so those jobs are ideal for workloads that use storage queues. Analogamente, i processi del bus di servizio sono ideali per carichi di lavoro che usano argomenti e code del bus di servizio.Similarly, service bus jobs are ideal for workloads that use service bus queues and topics.

L'entità "processo" in dettaglioThe "job" entity in detail

A livello di base, un processo pianificato ha diverse parti:At a basic level, a scheduled job has several parts:

  • L'azione da eseguire quando viene si attiva il timer del processoThe action to perform when the job timer fires
  • (Facoltativo) Il tempo necessario per eseguire il processo(Optional) The time to run the job
  • (Facoltativo) Quando e quanto spesso ripetere il processo(Optional) When and how often to repeat the job
  • (Facoltativo) Un'azione da attivare in caso di esito negativo dell'azione primaria(Optional) An action to fire if the primary action fails

Internamente, un processo pianificato contiene inoltre dati forniti dal sistema, ad esempio il momento di esecuzione pianificata successivo.Internally, a scheduled job also contains system-provided data such as the next scheduled execution time.

Il codice seguente fornisce un esempio completo di un processo pianificato.The following code provides a comprehensive example of a scheduled job. I dettagli vengono forniti nelle sezioni a seguire.Details are provided in subsequent sections.

{
    "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
    },
}

Come illustrato nell'utilità di pianificazione di esempio sopra riportato, la definizione di un processo ha diverse parti:As seen in the sample scheduled job above, a job definition has several parts:

  • Ora di inizio ("startTime")Start time (“startTime”)
  • Azione ("action"), che include l'azione in caso di errore ("errorAction")Action (“action”), which includes error action (“errorAction”)
  • Ricorrenza ("recurrence")Recurrence (“recurrence”)
  • Stato (“state”)State (“state”)
  • Status (“status”)Status (“status”)
  • Criterio di ripetizione (“retryPolicy”)Retry policy (“retryPolicy”)

Esaminiamo ciascuna in modo dettagliato:Let’s examine each of these in detail:

startTimestartTime

"startTime" è l'ora di inizio e consente al chiamante di specificare una differenza di fuso orario in transito in formato ISO-8601.The "startTime” is the start time and allows the caller to specify a time zone offset on the wire in ISO-8601 format.

action ed errorActionaction and errorAction

"action" è l'azione richiamata a ogni occorrenza, e descrive un tipo di chiamata di servizio.The “action” is the action invoked on each occurrence and describes a type of service invocation. L'azione è ciò che verrà eseguito nella pianificazione specificata.The action is what will be executed on the provided schedule. L'Utilità di pianificazione supporta azioni della coda del bus di servizio, dell'argomento del bus di servizio, della coda di archiviazione e HTTP.Scheduler supports HTTP, storage queue, service bus topic, and service bus queue actions.

L'azione nell'esempio precedente è un'azione HTTP.The action in the example above is an HTTP action. Di seguito è riportato un esempio di un'azione in coda di archiviazione:Below is an example of a storage queue action:

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

Di seguito è riportato un esempio di azione dell'argomento del bus di servizio.Below is an example of a service bus topic action.

"action": { "type": "serviceBusTopic", "serviceBusTopicMessage": { "topicPath": "t1","action": { "type": "serviceBusTopic", "serviceBusTopicMessage": { "topicPath": "t1",
"namespace": "mySBNamespace", "transportType": "netMessaging", // Can be either netMessaging or AMQP "authentication": { "sasKeyName": "QPolicy", "type": "sharedAccessKey" }, "message": "Some message", "brokeredMessageProperties": {}, "customMessageProperties": { "appname": "FromScheduler" } }, }"namespace": "mySBNamespace", "transportType": "netMessaging", // Can be either netMessaging or AMQP "authentication": { "sasKeyName": "QPolicy", "type": "sharedAccessKey" }, "message": "Some message", "brokeredMessageProperties": {}, "customMessageProperties": { "appname": "FromScheduler" } }, }

Di seguito è riportato un esempio di azione di coda del bus di servizio.Below is an example of a service bus queue action:

"action": { "serviceBusQueueMessage": { "queueName": "q1","action": { "serviceBusQueueMessage": { "queueName": "q1",
"namespace": "mySBNamespace", "transportType": "netMessaging", // Can be either netMessaging or AMQP "authentication": {"namespace": "mySBNamespace", "transportType": "netMessaging", // Can be either netMessaging or AMQP "authentication": {
"sasKeyName": "QPolicy", "type": "sharedAccessKey" }, "message": "Some message","sasKeyName": "QPolicy", "type": "sharedAccessKey" }, "message": "Some message",
"brokeredMessageProperties": {}, "customMessageProperties": { "appname": "FromScheduler" } }, "type": "serviceBusQueue" }"brokeredMessageProperties": {}, "customMessageProperties": { "appname": "FromScheduler" } }, "type": "serviceBusQueue" }

"errorAction" è il gestore degli errori, l'azione viene richiamata quando l'azione principale ha esito negativo.The “errorAction” is the error handler, the action invoked when the primary action fails. È possibile usare questa variabile per chiamare un endpoint di gestione degli errori o per inviare una notifica all'utente.You can use this variable to call an error-handling endpoint or send a user notification. Ciò può essere usato per raggiungere un endpoint secondario in caso quello primario non sia disponibile (ad esempio, in caso di emergenza nel sito dell'endpoint) o può essere usato per notificare un endpoint che si occupi di gestire gli errori.This can be used for reaching a secondary endpoint in the case that the primary is not available (e.g., in the case of a disaster at the endpoint’s site) or can be used for notifying an error handling endpoint. Proprio come l'azione principale, l'azione di errore può essere semplice o a logica composita basata su altre azioni.Just like the primary action, the error action can be simple or composite logic based on other actions. Per informazione su come creare un token SAS, fare riferimento a Creare e utilizzare una firma di accesso condiviso.To learn how to create a SAS token, refer to Create and Use a Shared Access Signature.

ricorrenzarecurrence

La ricorrenza ha diverse parti:Recurrence has several parts:

  • Frequenza: Un valore tra minuto, ora, giorno, settimana, mese, annoFrequency: One of minute, hour, day, week, month, year
  • Intervallo: Intervallo alla frequenza specificata per la ricorrenzaInterval: Interval at the given frequency for the recurrence
  • Pianificazione prescritta: Specifica minuti, ore, giorni della settimana, mesi e giorni del mese della ricorrenzaPrescribed schedule: Specify minutes, hours, weekdays, months, and monthdays of the recurrence
  • Conteggio: Conteggio delle occorrenzeCount: Count of occurrences
  • Ora di fine: Nessun processo verrà eseguito dopo l'ora di fine specificataEnd time: No jobs will execute after the specified end time

Un processo è ricorrente se dispone di un oggetto ricorrente specificato nella sua definizione JSON.A job is recurring if it has a recurring object specified in its JSON definition. Se sono specificati sia conteggio che l'ora di fine, viene applicata la regola di completamento che si verifica per primo.If both count and endTime are specified, the completion rule that occurs first is honored.

statestate

Lo stato del processo è uno di questi quattro valori: abilitato, disabilitato, completato o in errore.The state of the job is one of four values: enabled, disabled, completed, or faulted. È possibile eseguire azioni PUT o PATCH sui processi per aggiornarli allo stato abilitato o disabilitato.You can PUT or PATCH jobs so as to update them to the enabled or disabled state. Se un processo è stato completato o in errore, si trova in uno stato finale che non può essere aggiornato (anche se è comunque possibile eliminare il processo).If a job has been completed or faulted, that is a final state that cannot be updated (though the job can still be DELETED). Un esempio della proprietà stato è come segue:An example of the state property is as follows:

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

I processi completati e con errori vengono eliminati dopo 60 giorni.Completed and faulted jobs are deleted after 60 days.

statusstatus

Dopo l'avvio dell'Utilità di pianificazione, verranno restituite informazioni sullo stato corrente del processo.Once a Scheduler job has started, information will be returned about the current status of the job. Questo oggetto non può essere impostato dall'utente: è impostato dal sistema.This object is not settable by the user—it’s set by the system. Tuttavia, è incluso nell'oggetto processo (anziché in una risorsa collegata separata) in modo da consentire di ottenere semplicemente lo stato di un processo.However, it is included in the job object (rather than a separate linked resource) so that one can obtain the status of a job easily.

Lo stato del processo include l'ora dell'esecuzione precedente (se presente), l'ora della successiva esecuzione pianificata (per i processi in corso) e il conteggio delle esecuzioni del processo.Job status includes the time of the previous execution (if any), the time of the next scheduled execution (for in-progress jobs), and the execution count of the job.

retryPolicyretryPolicy

Se un'utilità di pianificazione non riesce, è possibile specificare un criterio di ripetizione per determinare se e come l'azione verrà ripetuta.If a Scheduler job fails, it is possible to specify a retry policy to determine whether and how the action is retried. Ciò è determinato dall'oggetto retryType: è impostato su nessuno se non esiste alcun criterio di ripetizione, come illustrato in precedenza.This is determined by the retryType object—it is set to none if there is no retry policy, as shown above. Impostato su fisso se esiste un criterio di ripetizione.Set it to fixed if there is a retry policy.

Per impostare un criterio di ripetizione, è possibile specificare due impostazioni aggiuntive: un intervallo tra i tentativi (retryInterval) e il numero di tentativi (retryCount).To set a retry policy, two additional settings may be specified: a retry interval (retryInterval) and the number of retries (retryCount).

L'intervallo tra tentativi, specificato con l'oggetto retryInterval , è l'intervallo di tempo tra i tentativi.The retry interval, specified with the retryInterval object, is the interval between retries. Il valore predefinito è 30 secondi, il valore minimo configurabile è 15 secondi e il valore massimo è 18 mesi.Its default value is 30 seconds, its minimum configurable value is 15 seconds, and its maximum value is 18 months. I processi inclusi nelle raccolte di processi del livello Gratuito hanno un valore minimo configurabile di 1 ora.Jobs in Free job collections have a minimum configurable value of 1 hour. Viene definito nel formato ISO 8601.It is defined in the ISO 8601 format. Analogamente, il valore del numero di tentativi è specificato con l'oggetto retryCount e specifica quanti tentativi verranno eseguiti.Similarly, the value of the number of retries is specified with the retryCount object; it is the number of times a retry is attempted. Il valore predefinito è 4 e il valore massimo è 20.Its default value is 4, and its maximum value is 20. I valori retryInterval e retryCount sono facoltativi.Both retryInterval and retryCount are optional. A questi oggetti vengono assegnati i valori predefiniti se retryType è impostato su fixed e non sono specificati valori in modo esplicito.They are given their default values if retryType is set to fixed and no values are specified explicitly.

Vedere ancheSee also

Che cos'è l'Utilità di pianificazione?What is Scheduler?

Introduzione all'uso dell'Utilità di pianificazione nel portale di AzureGet started using Scheduler in the Azure portal

Piani e fatturazione nell'utilità di pianificazione di AzurePlans and billing in Azure Scheduler

Come creare pianificazioni complesse e operazioni ricorrenti avanzate con l'Utilità di pianificazione di AzureHow to build complex schedules and advanced recurrence with Azure Scheduler

Informazioni di riferimento sull'API REST dell'Utilità di pianificazione di AzureAzure Scheduler REST API reference

Informazioni di riferimento sui cmdlet PowerShell dell'Utilità di pianificazione di AzureAzure Scheduler PowerShell cmdlets reference

Livelli elevati di disponibilità e affidabilità dell'Utilità di pianificazione di AzureAzure Scheduler high-availability and reliability

Limiti, valori predefiniti e codici di errore dell'Utilità di pianificazione di AzureAzure Scheduler limits, defaults, and error codes

Autenticazione in uscita dell'Utilità di pianificazione di AzureAzure Scheduler outbound authentication