Trabalhos e estados de execução de trabalhos - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhos e estados de execução de trabalhos

As seções a seguir descrevem o ciclo de vida de um AWS IoT trabalho e o ciclo de vida de uma execução do trabalho.

Estados do trabalho

O diagrama a seguir mostra os diferentes estados de um AWS IoT trabalho.

Imagem mostrando os diferentes estados de um AWS IoT trabalho.

Um trabalho que você cria usando AWS IoT Jobs pode estar em um dos seguintes estados:

  • PROGRAMADO

    Durante a criação inicial do trabalho ou do modelo de trabalho usando o AWS IoT console, CreateJoba CreateJobTemplateAPI ou a API, você pode selecionar a configuração de agendamento opcional no AWS IoT console ou SchedulingConfig na CreateJobAPI ou CreateJobTemplateAPI. Quando você inicia um trabalho agendado contendo um determinado startTime, endTime, e endBehavoir, o status do trabalho é atualizado para SCHEDULED. Quando o trabalho atingir o startTime ou o startTime selecionado da próxima janela de manutenção (se você selecionou a distribuição do trabalho durante uma janela de manutenção), o status será atualizado de SCHEDULED para IN_PROGRESS e iniciará a distribuição do documento de trabalho em todos os dispositivos do grupo de destino.

  • IN_PROGRESS

    Quando você cria um trabalho usando o AWS IoT console ou a CreateJobAPI, o status do trabalho é atualizado paraIN_PROGRESS. Durante a criação do trabalho, o trabalho de AWS IoT começa a implementar execuções de trabalhos nos dispositivos do seu grupo de destino. Depois que todas as execuções de trabalhos forem distribuídas, o trabalho de AWS IoT espera que os dispositivos concluam a ação remota.

    Para obter informações sobre simultaneidade e limites que se aplicam a trabalhos em andamento, consulte. Limites de trabalhos

    nota

    Quando um trabalho IN_PROGRESS chegar ao final da janela de manutenção atual, a distribuição do documento do trabalho será interrompida. O trabalho será atualizado para SCHEDULED até a startTime da próxima janela de manutenção.

  • CONCLUÍDO

    Um trabalho contínuo é processado de uma das seguintes maneiras:

    • Para um trabalho contínuo sem a configuração de agendamento opcional selecionada, ele está sempre em andamento e continua sendo executado em todos os novos dispositivos adicionados ao grupo de destino. Nunca alcançará um estado de status de COMPLETED.

    • Para um trabalho contínuo com a configuração de agendamento opcional selecionada, o seguinte é verdadeiro:

      • Se um endTime foi fornecido, um trabalho contínuo alcançará o status COMPLETED quando o endTime for aprovado e todas as execuções do trabalho tenham atingido um estado de status terminal.

      • Se um endTime não tiver sido fornecido na configuração de agendamento opcional, o trabalho contínuo continuará executando a distribuição do documento de trabalho.

    Para um trabalho de snapshot, o status do trabalho muda para COMPLETED quando todas as execuções do trabalho entram em um estado terminal, como SUCCEEDED, FAILED, TIMED_OUT, REMOVED ou CANCELED.

  • CANCELED

    Quando você cancela um trabalho usando o AWS IoT console, a CancelJobAPI ou oConfiguração de anulação de trabalho, o status do trabalho muda paraCANCELED. Durante o cancelamento do trabalho, o AWS IoT Jobs começa a cancelar as execuções de tarefas criadas anteriormente.

    Para obter informações sobre simultaneidade e limites que se aplicam a trabalhos que estão sendo cancelados, consulte Limites de trabalhos.

  • DELETION_IN_PROGRESS

    Quando você exclui um trabalho usando o AWS IoT console ou a DeleteJobAPI, o status do trabalho muda paraDELETION_IN_PROGRESS. Durante a exclusão do trabalho, o AWS IoT Jobs começa a excluir execuções de trabalhos criados anteriormente. Depois que todas as execuções de tarefas forem excluídas, a tarefa desaparecerá da sua AWS conta.

Estados de execução de trabalho

A tabela a seguir mostra os diferentes estados da execução de um AWS IoT trabalho e se a alteração de estado é iniciada pelo dispositivo ou pelos AWS IoT Jobs.

Estados e origem da execução do trabalho
Estado de execução do trabalho Iniciado pelo dispositivo? Iniciado por AWS IoT Jobs? Status do terminal? Pode ser tentado novamente?
QUEUED Não Sim Não Não aplicável
IN_PROGRESS Sim Não Não Não aplicável
SUCCEEDED Sim Não Sim Não aplicável
FAILED Sim Não Sim Sim
TIMED_OUT Não Sim Sim Sim
REJECTED Sim Não Sim Não
REMOVED Não Sim Sim Não
CANCELED Não Sim Sim Não

A seção a seguir descreve mais sobre os estados de execução de um trabalho que é implementado quando você cria um trabalho com AWS IoT Jobs.

  • QUEUED

    Quando AWS IoT Jobs lança uma execução de trabalho para um dispositivo de destino, o status de execução do trabalho é definido comoQUEUED. A execução do trabalho permanece no estado QUEUED até:

    • Seu dispositivo receber a execução do trabalho, invocar as operações da API de trabalho e relatar o status como IN_PROGRESS.

    • Você cancelar o trabalho ou a execução do trabalho, ou quando os critérios de cancelamento especificados são atendidos e o status muda para CANCELED.

    • Seu dispositivo ser removido do grupo de destino e o status mudar para REMOVED.

    Imagem mostrando como a execução de um trabalho em fila muda o estado para IN_PROGRESS e como um trabalho pode ser REJECTED se o dispositivo não aceitar a solicitação de criação do trabalho.
  • IN_PROGRESS

    Se seu dispositivo de IoT assinar o reservado Tópicos de trabalhos $notify e$notify-next, e seu dispositivo invocar a StartNextPendingJobExecution API ou a UpdateJobExecution API com um status deIN_PROGRESS, AWS IoT Jobs definirá o status de execução do trabalho como. IN_PROGRESS

    A API UpdateJobExecution pode ser invocada várias vezes com o status de IN_PROGRESS. Você pode especificar detalhes adicionais sobre as etapas de execução usando o objeto statusDetails.

    nota

    Se você criar várias tarefas para cada dispositivo, as AWS IoT tarefas e o protocolo MQTT não garantem a ordem de entrega.

  • SUCCEEDED

    Quando seu dispositivo conclui com êxito a operação remota, ele deve invocar a UpdateJobExecution API com o status de SUCCEEDED para indicar que a execução do trabalho foi bem-sucedida. AWS IoT Em seguida, os trabalhos atualizam e retornam o status de execução do trabalho comoSUCCEEDED.

    Imagem mostrando como a execução de um trabalho em andamento pode falhar e como repetir a execução.
  • COM FALHA

    Quando seu dispositivo não consegue concluir a operação remota, ele deve invocar a UpdateJobExecution API com o status de Failed para indicar que a execução do trabalho falhou. AWS IoT Em seguida, os trabalhos atualizam e retornam o status de execução do trabalho comoFailed. Você pode repetir a execução desse trabalho para o dispositivo usando o. Configuração de repetição de execução de trabalho

    Imagem mostrando como a execução de um trabalho em andamento pode falhar e como repetir a execução.
  • TIMED_OUT

    Quando seu dispositivo não consegue concluir uma etapa do trabalho quando o status éIN_PROGRESS, ou quando não consegue concluir a operação remota dentro do tempo limite do cronômetro em andamento, o AWS IoT Jobs define o status de execução do trabalho como. TIMED_OUT Você também tem um temporizador para cada etapa de um trabalho em andamento e se aplica somente à execução do trabalho. A duração do temporizador em andamento é especificada usando a propriedade inProgressTimeoutInMinutes do Configuração de tempo limite de execução de trabalhos. Você pode repetir a execução desse trabalho para o dispositivo usando o. Configuração de repetição de execução de trabalho

    Imagem mostrando como a execução de um trabalho em andamento pode atingir o tempo limite e como repetir a execução.
  • REJEITADO

    Quando seu dispositivo recebe uma solicitação inválida ou incompatível, ele deve invocar a UpdateJobExecution API com o status de. REJECTED AWS IoT Em seguida, os trabalhos atualizam e retornam o status de execução do trabalho comoREJECTED.

  • REMOVIDO

    Quando seu dispositivo não é mais um destino válido para a execução do trabalho, como quando está separado de um grupo dinâmico de objetos, o trabalho de AWS IoT define o status de execução do trabalho como REMOVED. Você pode reconectar o item ao seu grupo de destino e reiniciar a execução do trabalho no dispositivo.

  • CANCELED

    Quando você cancela um trabalho ou cancela a execução de um trabalho usando o console ou a CancelJobExecution API, CancelJob ou quando os critérios de cancelamento especificados usando o Configuração de anulação de trabalho são atendidos, AWS IoT Jobs cancela o trabalho e define o status de execução do trabalho como. CANCELED