Skip to main content
ONTAP Automation
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Processamento assíncrono usando o objeto Job

Colaboradores

Depois de emitir uma solicitação de API projetada para ser executada assincronamente, um objeto de tarefa é sempre criado e retornado ao chamador. O trabalho descreve e ancora uma tarefa em segundo plano que processa a solicitação. Dependendo do código de status HTTP, você deve recuperar o estado da tarefa para determinar se a solicitação foi bem-sucedida.

"Referência da API"Consulte para determinar quais chamadas de API são projetadas para serem executadas de forma assíncrona.

Controlar como uma solicitação é processada

Você pode usar o return_timeout parâmetro de consulta para controlar como uma chamada de API assíncrona é processada. Há dois resultados possíveis ao usar este parâmetro.

O temporizador expira antes de a solicitação ser concluída

Para solicitações válidas, o ONTAP retorna um código de status HTTP 202 junto com o objeto job. Você deve recuperar o estado do trabalho para determinar se a solicitação foi concluída com êxito.

A solicitação é concluída antes que o temporizador expire

Se a solicitação for válida e for concluída com êxito antes que o tempo expire, o ONTAP retornará um código de status HTTP 200 juntamente com o objeto da tarefa. Como a solicitação é concluída de forma síncrona, como indicado pelo 200, você não precisa recuperar o estado da tarefa.

Observação O valor padrão para o return_timeout parâmetro é zero segundos. Portanto, se você não incluir o parâmetro, o código de status HTTP 202 sempre será retornado para uma solicitação válida.

Consultando o objeto Job associado a uma solicitação de API

O objeto Job retornado na resposta HTTP contém várias propriedades. Você pode consultar a propriedade State em uma chamada API subsequente para determinar se a solicitação foi concluída com êxito. Um objeto Job está sempre num dos seguintes estados:

estados não-terminais
  • Em fila de espera

  • Em execução

  • Em pausa

estados do terminal
  • Sucesso

  • Falha

Procedimento geral para emitir uma solicitação assíncrona

Você pode usar o seguinte procedimento de alto nível para concluir uma chamada assíncrona de API. Este exemplo assume que o return_timeout parâmetro não é utilizado ou que o tempo expira antes da conclusão do trabalho em segundo plano.

  1. Emita uma chamada de API que foi projetada para ser executada assincronamente.

  2. Receber uma resposta HTTP 202 indicando aceitação de uma solicitação válida.

  3. Extraia o identificador do objeto Job do corpo de resposta.

  4. Dentro de um loop temporizado, execute o seguinte em cada ciclo:

    1. Obtenha o estado atual do trabalho.

    2. Se o trabalho estiver em um estado não terminal, execute o loop novamente.

  5. Pare quando o trabalho atingir um estado terminal (sucesso, falha).