Conceitos, terminologia e entidades do Agendador do AzureConcepts, terminology, and entities in Azure Scheduler

Importante

Aplicativos Lógicos do Azure está substituindo o Agendador do Azure, que está sendo desativado.Azure Logic Apps is replacing Azure Scheduler, which is being retired. Para agendar trabalhos, experimente os Aplicativos Lógicos do Azure.To schedule jobs, try Azure Logic Apps instead.

Hierarquia de entidadesEntity hierarchy

A API REST do Agendador do Azure expõe e usa essas entidades principais, ou recursos:The Azure Scheduler REST API exposes and uses these main entities, or resources:

EntidadeEntity DESCRIÇÃODescription
TrabalhoJob Define uma única ação recorrente com estratégias simples ou complexas para execução.Defines a single recurring action with simple or complex strategies for execution. As ações podem incluir solicitações HTTP, de fila de armazenamento, de fila de Barramento de Serviço ou de tópico do Barramento de Serviço.Actions might include HTTP, Storage queue, Service Bus queue, or Service Bus topic requests.
Coleção de trabalhosJob collection Contém um grupo de trabalhos e mantém as configurações, cotas e limites que são compartilhados pelos trabalhos na coleção.Contains a group of jobs and maintains settings, quotas, and throttles that are shared by jobs in the collection. Como proprietário de uma assinatura do Azure, você pode criar coleções de trabalhos e trabalhos de grupo com base em limites de aplicativo ou uso.As an Azure subscription owner, you can create job collections and group jobs together based on their usage or application boundaries. Uma coleção de trabalhos tem estes atributos:A job collection has these attributes:

– Restrita a uma região.- Constrained to one region.
– Permite que você imponha cotas para que possa restringir o uso de todos os trabalhos em uma coleção.- Lets you enforce quotas so you can constrain usage for all jobs in a collection.
– As cotas incluem MaxJobs e MaxRecurrence.- Quotas include MaxJobs and MaxRecurrence.

Histórico de trabalhoJob history Descreve os detalhes para a execução de um trabalho, por exemplo, o status e os detalhes da resposta.Describes details for a job execution, for example, status and any response details.

Gerenciamento de entidadeEntity management

Em um alto nível, a API REST do Agendador expõe essas operações para gerenciar as entidades.At a high-level, the Scheduler REST API exposes these operations for managing entities.

Gerenciamento de trabalhosJob management

Compatível com operações para criar e editar trabalhos.Supports operations for creating and editing jobs. Todos os trabalhos devem pertencer a uma coleção de trabalhos existente, para que não haja criação implícita.All jobs must belong to an existing job collection, so there's no implicit creation. Para obter mais informações, veja API REST do Agendador – Trabalhos.For more information, see Scheduler REST API - Jobs. Aqui está o endereço do URI para essas operações:Here's the URI address for these operations:

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

Gerenciamento de coleção de trabalhosJob collection management

Compatível com operações para criar e editar trabalhos e coleções de trabalhos, que são mapeados para cotas e configurações compartilhadas.Supports operations for creating and editing jobs and job collections, which map to quotas and shared settings. Por exemplo, as cotas especificam o número máximo de trabalhos e o menor intervalo de recorrência.For example, quotas specify the maximum number of jobs and smallest recurrence interval. Para obter mais informações, veja API REST do Agendador – Coleções de trabalhos.For more information, see Scheduler REST API - Job Collections. Aqui está o endereço do URI para essas operações:Here's the URI address for these operations:

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

Gerenciamento de histórico de trabalhosJob history management

Compatível com a operação GET para buscar 60 dias de histórico de execução do trabalho, por exemplo, o tempo decorrido do trabalho e os resultados da execução do trabalho.Supports the GET operation for fetching 60 days of job execution history, for example, job elapsed time and job execution results. Inclui o suporte ao parâmetro de cadeia de caracteres consulta para filtrar com base no estado e status.Includes query string parameter support for filtering based on state and status. Para obter mais informações, veja API REST do Agendador – Trabalhos – Histórico de trabalhos de lista.For more information, see Scheduler REST API - Jobs - List Job History. Aqui está o endereço do URI para esta operação:Here's the URI address for this operation:

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

Tipos de trabalhoJob types

O Agendador do Azure é compatível com vários tipos de trabalho:Azure Scheduler supports multiple job types:

  • Trabalhos HTTP, incluindo trabalhos HTTPS compatíveis com SSL, para quando você tem o ponto de extremidade para um serviço ou carga de trabalho existenteHTTP jobs, including HTTPS jobs that support SSL, for when you have the endpoint for an existing service or workload
  • Trabalhos de fila de armazenamento para cargas de trabalho que usam filas de armazenamento, como o envio de mensagens para filas de armazenamentoStorage queue jobs for workloads that use Storage queues, such as posting messages to Storage queues
  • Trabalhos de fila do Barramento de Serviço para cargas de trabalho que usam filas do Barramento de ServiçoService Bus queue jobs for workloads that use Service Bus queues
  • Trabalhos de tópico do Barramento de Serviço para cargas de trabalho que usam tópicos do Barramento de ServiçoService Bus topic jobs for workloads that use Service Bus topics

Definição de trabalhoJob definition

Em alto nível, um trabalho do Agendador tem essas partes básicas:At the high level, a Scheduler job has these basic parts:

  • A ação executada quando o temporizador do trabalho é disparadoThe action that runs when the job timer fires
  • Opcional: O tempo para executar o trabalhoOptional: The time to run the job
  • Opcional: Quando e com que frequência repetir o trabalhoOptional: When and how often to repeat the job
  • Opcional: Uma ação de erro que será executada se a ação principal falharOptional: An error action that runs if the primary action fails

O trabalho também inclui os dados fornecidos pelo sistema, como tempo de execução agendada do próximo do trabalho.The job also includes system-provided data such as the job's next scheduled run time. A definição do código desse trabalho é um objeto no formato JSON (JavaScript Object Notation), que tem estes elementos:The job's code definition is an object in JavaScript Object Notation (JSON) format, which has these elements:

ElementoElement ObrigatórioRequired DESCRIÇÃODescription
startTimestartTime NãoNo A hora de início do trabalho com um deslocamento de fuso horário em formato ISO 8601The start time for the job with a time zone offset in ISO 8601 format
actionaction SimYes Os detalhes para a ação principal, que podem incluir um objeto errorActionThe details for the primary action, which can include an errorAction object
errorActionerrorAction NãoNo Os detalhes para a ação secundária que é executada se a ação principal falhaThe details for the secondary action that runs if the primary action fails
recurrencerecurrence NãoNo Os detalhes, como a frequência e o intervalo para um trabalho recorrenteThe details such as frequency and interval for a recurring job
retryPolicyretryPolicy NãoNo Os detalhes de quantas vezes repetir uma açãoThe details for how often to retry an action
statestate SimYes Os detalhes do estado atual do trabalhoThe details for the job's current state
Statusstatus SimYes Os detalhes do status atual do trabalho, que é controlado pelo serviçoThe details for the job's current status, which is controlled by the service

Aqui está um exemplo que mostra uma definição de trabalho abrangente para uma ação HTTP com detalhes de elemento mais completos descritos nas seções posteriores:Here's an example that shows a comprehensive job definition for an HTTP action with fuller element details described in later sections:

"properties": {
   "startTime": "2012-08-04T00:00Z",
   "action": {
      "type": "Http",
      "request": {
         "uri": "http://contoso.com/some-method", 
         "method": "PUT",          
         "body": "Posting from a timer",
         "headers": {
            "Content-Type": "application/json"
         },
         "retryPolicy": { 
             "retryType": "None" 
         },
      },
      "errorAction": {
         "type": "Http",
         "request": {
            "uri": "http://contoso.com/notifyError",
            "method": "POST"
         }
      }
   },
   "recurrence": {
      "frequency": "Week",
      "interval": 1,
      "schedule": {
         "weekDays": ["Monday", "Wednesday", "Friday"],
         "hours": [10, 22]
      },
      "count": 10,
      "endTime": "2012-11-04"
   },
   "state": "Disabled",
   "status": {
      "lastExecutionTime": "2007-03-01T13:00:00Z",
      "nextExecutionTime": "2007-03-01T14:00:00Z ",
      "executionCount": 3,
      "failureCount": 0,
      "faultedCount": 0
   }
}

startTimestartTime

No objeto startTime, você pode especificar a hora de início e um deslocamento de fuso horário no formato ISO 8601.In the startTime object, you can specify the start time and a time zone offset in ISO 8601 format.

actionaction

Seu trabalho do Agendador executa uma action primária com base no agendamento especificado.Your Scheduler job runs a primary action based on the specified schedule. O Agendador é compatível com ações HTTP, de fila de armazenamento, de tópico do Barramento de Serviço e de fila do Barramento de Serviço.Scheduler supports HTTP, Storage queue, Service Bus queue, and Service Bus topic actions. Se a action primária falha, o Agendador pode executar uma errorAction secundária que cuida do erro.If the primary action fails, Scheduler can run a secondary errorAction that handles the error. O objeto action descreve estes elementos:The action object describes these elements:

  • O tipo de serviço da açãoThe action's service type
  • Os detalhes da açãoThe action's details
  • Uma errorAction alternativaAn alternative errorAction

O exemplo anterior descreve uma ação HTTP.The previous example describes an HTTP action. Aqui está um exemplo de uma ação de fila de armazenamento:Here's an example for a Storage queue action:

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

Aqui está um exemplo de uma ação de fila do Barramento de Serviço:Here's an example for a Service Bus queue action:

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

Aqui está um exemplo de uma ação de tópico do Barramento de Serviço:Here's an example for a Service Bus topic action:

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

Para obter mais informações sobre os tokens de SAS (Assinatura de Acesso Compartilhado), consulte Autorizar com Assinaturas de Acesso Compartilhado.For more information about Shared Access Signature (SAS) tokens, see Authorize with Shared Access Signatures.

errorActionerrorAction

Se a action primária do trabalho falha, o Agendador pode executar um errorAction que cuida do erro.If your job's primary action fails, Scheduler can run an errorAction that handles the error. Na action primária, você pode especificar um objeto errorAction para que o Agendador possa chamar um ponto de extremidade de tratamento de erros ou enviar uma notificação de usuário.In the primary action, you can specify an errorAction object so Scheduler can call an error-handling endpoint or send a user notification.

Por exemplo, se ocorrer um desastre no ponto de extremidade primário, você poderá usar errorAction para chamar um ponto de extremidade secundário ou para notificar um ponto de extremidade de tratamento de erro.For example, if a disaster happens at the primary endpoint, you can use errorAction for calling a secondary endpoint, or for notifying an error handling endpoint.

Assim como action primária, você pode fazer com que a ação de erro use a lógica simples ou composta com base em outras ações.Just like the primary action, you can have the error action use simple or composite logic based on other actions.

recurrencerecurrence

Um trabalho se repetirá se a definição do JSON do trabalho incluir o objeto recurrence, por exemplo:A job recurs if the job's JSON definition includes the recurrence object, for example:

"recurrence": {
   "frequency": "Week",
   "interval": 1,
   "schedule": {
      "hours": [10, 22],
      "minutes": [0, 30],
      "weekDays": ["Monday", "Wednesday", "Friday"]
   },
   "count": 10,
   "endTime": "2012-11-04"
},
PropriedadeProperty NecessárioRequired ValueValue DESCRIÇÃODescription
frequencyfrequency Sim, quando recurrence é usadoYes, when recurrence is used "Minute", "Hour", "Day", "Week", "Month", "Year""Minute", "Hour", "Day", "Week", "Month", "Year" A unidade de tempo entre ocorrênciasThe time unit between occurrences
intervalinterval NãoNo 1 a 1000, inclusive1 to 1000 inclusively Um inteiro positivo que determina o número de unidades de tempo entre cada ocorrência com base em frequencyA positive integer that determines the number of time units between each occurrence based on frequency
scheduleschedule NãoNo VariaVaries Os detalhes de agendamentos mais avançados e complexos.The details for more complex and advanced schedules. Veja hours, minutes, weekDays, months e monthDaysSee hours, minutes, weekDays, months, and monthDays
horashours NãoNo 1 a 241 to 24 Uma matriz com as marcas de hora para quando executar o trabalhoAn array with the hour marks for when to run the job
minutosminutes NãoNo 0 a 590 to 59 Uma matriz com as marcas de minutos para quando executar o trabalhoAn array with the minute marks for when to run the job
monthsmonths NãoNo 1 a 121 to 12 Uma matriz com os meses para quando executar o trabalhoAn array with the months for when to run the job
Dias do mêsmonthDays NãoNo VariaVaries Uma matriz com os dias do mês para quando executar o trabalhoAn array with the days of the month for when to run the job
Dias da semanaweekDays NãoNo "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday""Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" Uma matriz com os dias da semana para quando executar o trabalhoAn array with days of the week for when to run the job
countcount NãoNo <none><none> O número de recorrências.The number of recurrences. O padrão é repetir indefinidamente.The default is to recur infinitely. Não é possível usar count e endTime, mas a regra que termina primeiro é respeitada.You can't use both count and endTime, but the rule that finishes first is honored.
endTimeendTime NãoNo <none><none> A data e hora para quando interromper a recorrência.The date and time for when to stop the recurrence. O padrão é repetir indefinidamente.The default is to recur infinitely. Não é possível usar count e endTime, mas a regra que termina primeiro é respeitada.You can't use both count and endTime, but the rule that finishes first is honored.

Para obter mais informações sobre esses elementos, consulte Criar agendamentos complexos e recorrências avançadas.For more information about these elements, see Build complex schedules and advanced recurrences.

retryPolicyretryPolicy

Para o caso quando um trabalho do Agendador falhar, você pode configurar uma política de repetição, que determina se e como o Agendador repete a ação.For the case when a Scheduler job might fail, you can set up a retry policy, which determines whether and how Scheduler retries the action. Por padrão, o Agendador tenta o trabalho novamente mais quatro vezes, em intervalos de 30 segundos.By default, Scheduler retries the job four more times at 30-second intervals. Você pode fazer com que essa política seja mais ou menos agressiva, por exemplo, essa política tentar novamente uma ação duas vezes por dia:You can make this policy more or less aggressive, for example, this policy retries an action two times per day:

"retryPolicy": { 
   "retryType": "Fixed",
   "retryInterval": "PT1D",
   "retryCount": 2
},
PropriedadeProperty NecessárioRequired ValueValue DESCRIÇÃODescription
retryTyperetryType SimYes Fixed, NoneFixed, None Determina se você especifica uma política de repetição (fixed) ou não (none).Determines whether you specify a retry policy (fixed) or not (none).
retryIntervalretryInterval NãoNo PT30SPT30S Especifica o intervalo e a frequência entre as tentativas de repetição no formato ISO 8601.Specifies the interval and frequency between retry attempts in ISO 8601 format. O valor mínimo é 15 segundos, enquanto o valor máximo é 18 meses.The minimum value is 15 seconds, while the maximum value is 18 months.
retryCountretryCount NãoNo 44 Especifica o número de tentativas de repetição.Specifies the number of retry attempts. O valor máximo é 20.The maximum value is 20.

Para obter mais informações, consulte Alta disponibilidade e confiabilidade.For more information, see High availability and reliability.

estadostate

O estado de um trabalho é Enabled, Disabled, Completed ou Faulted, por exemplo:A job's state is either Enabled, Disabled, Completed, or Faulted, for example:

"state": "Disabled"

Para alterar os trabalhos para o estado Enabled ou Disabled, você pode usar a operação PUT ou PATCH nesses trabalhos.To change jobs to Enabled or Disabled state, you can use the PUT or PATCH operation on those jobs. No entanto, se um trabalho tiver o estado Completed ou Faulted, não será possível atualizar o estado, embora você possa executar a operação DELETE no trabalho.However, if a job has Completed or Faulted state, you can't update the state, although you can perform the DELETE operation on the job. O Agendador exclui os trabalhos concluídos ou com falha após 60 dias.Scheduler deletes completed and faulted jobs after 60 days.

statusstatus

Depois que um trabalho é iniciado, o Agendador retorna informações sobre o status do trabalho por meio do objeto status, que apenas o Agendador controla.After a job starts, Scheduler returns information about the job's status through the status object, which only Scheduler controls. No entanto, você pode encontrar o objeto status dentro do objeto job.However, you can find the status object inside the job object. Aqui estão as informações que o status do trabalho incluem:Here's the information that a job's status includes:

  • Hora da execução anterior, se houverTime for the previous execution, if any
  • Hora da próxima execução agendada para trabalhos em andamentoTime for the next scheduled execution for jobs in progress
  • O número de execuções de trabalhoThe number of job executions
  • O número de falhas, se houverThe number of failures, if any
  • O número de falhas, se houverThe number of faults, if any

Por exemplo:For example:

"status": {
   "lastExecutionTime": "2007-03-01T13:00:00Z",
   "nextExecutionTime": "2007-03-01T14:00:00Z ",
   "executionCount": 3,
   "failureCount": 0,
   "faultedCount": 0
}

Consulte tambémSee also