Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Trabajos y estados de ejecución de los trabajos
En las siguientes secciones se describe el ciclo de vida de un AWS IoT trabajo y el ciclo de vida de la ejecución de un trabajo.
Estados del trabajo
El siguiente diagrama muestra los diferentes estados de un AWS IoT trabajo.
Un trabajo que se crea con AWS IoT Jobs puede estar en uno de los siguientes estados:
-
SCHEDULED
Durante la creación inicial del trabajo o la plantilla de trabajo mediante la AWS IoT consola, CreateJob la CreateJobTemplate API o la API, puede seleccionar la configuración de programación opcional en la AWS IoT consola o
SchedulingConfigen la CreateJob API o la CreateJobTemplate API. Al iniciar un trabajo programado que contiene unstartTime,endTimeyendBehaviorespecíficos y el estado del trabajo se actualiza aSCHEDULED. Cuando el trabajo llegue alstartTimeseleccionado o alstartTimedel siguiente periodo de mantenimiento (si seleccionó el despliegue del trabajo durante dicho periodo), el estado se actualizará deSCHEDULEDaIN_PROGRESSy comenzará a desplegarse el documento de trabajo en todos los dispositivos del grupo de destino. -
IN_PROGRESS
Al crear un trabajo mediante la AWS IoT consola o la CreateJob API, el estado del trabajo se actualiza a
IN_PROGRESS. Durante la creación del trabajo, Jobs de AWS IoT comienza a desplegar las ejecuciones de trabajo en los dispositivos del grupo de destino. Una vez desplegadas todas las ejecuciones de trabajo, Jobs de AWS IoT espera a que los dispositivos completen la acción remota.Para obtener información sobre la simultaneidad y los límites que se aplican a los trabajos en curso, consulte AWS IoT Límites de trabajos.
nota
Cuando un trabajo de
IN_PROGRESSllegue al final del periodo de mantenimiento actual, se detendrá el despliegue del documento del trabajo. El trabajo se actualizaráSCHEDULEDhasta elstartTimedel siguiente periodo de mantenimiento. -
COMPLETED
Un trabajo continuo se gestiona de una de las siguientes formas:
-
En el caso de un trabajo continuo sin la configuración de programación opcional seleccionada, siempre está en curso y sigue ejecutándose para cualquier dispositivo nuevo que se añada al grupo de destino. Nunca alcanzará el estado
COMPLETED. -
En el caso de un trabajo continuo con la configuración de programación opcional seleccionada, se cumple lo siguiente:
-
Si se ha proporcionado un
endTime, un trabajo continuo alcanzará el estadoCOMPLETEDcuando elendTimehaya pasado y todas las ejecuciones de trabajos hayan alcanzado un estado terminal. -
Si no se ha proporcionado un
endTimeen la configuración de programación opcional, el trabajo continuo seguirá realizando el despliegue del documento de trabajo.
-
En el caso de un trabajo instantáneo, el estado del trabajo cambia a
COMPLETEDcuando todas sus ejecuciones pasan a un estado terminal, comoSUCCEEDED,FAILED,TIMED_OUT,REMOVEDoCANCELED. -
-
CANCELADO
Cuando cancelas un trabajo mediante la AWS IoT consola, la CancelJob API o laConfiguración de anulación del trabajo, el estado del trabajo cambia a
CANCELED. Durante la cancelación de un trabajo, AWS IoT Jobs comienza a cancelar las ejecuciones de trabajos creados anteriormente.Para obtener información sobre la simultaneidad y los límites que se aplican a los trabajos que se van a cancelar, consulte AWS IoT Límites de trabajos.
-
DELETION_IN_PROGRESS
Cuando eliminas un trabajo mediante la AWS IoT consola o la DeleteJob API, el estado del trabajo cambia a
DELETION_IN_PROGRESS. Durante la eliminación de un trabajo, AWS IoT Jobs comienza a eliminar las ejecuciones de trabajo creadas anteriormente. Cuando se hayan eliminado todas las ejecuciones de trabajos, el trabajo desaparecerá de su AWS cuenta.
Estados de ejecución de trabajos
En la tabla siguiente se muestran los distintos estados de la ejecución de una AWS IoT tarea y si el cambio de estado lo inició el dispositivo o lo inició AWS IoT Jobs.
| Estado de ejecución de trabajos | ¿Iniciado por un dispositivo? | ¿Iniciado por AWS IoT Jobs? | ¿Estado terminal? | ¿Se puede reintentar? |
|---|---|---|---|---|
QUEUED |
No | Sí | No | No aplicable |
IN_PROGRESS |
Sí | No | No | No aplicable |
SUCCEEDED |
Sí | No | Sí | No aplicable |
FAILED |
Sí | No | Sí | Sí |
TIMED_OUT |
No | Sí | Sí | Sí |
REJECTED |
Sí | No | Sí | No |
REMOVED |
No | Sí | Sí | No |
CANCELED |
No | Sí | Sí | No |
En la siguiente sección se describe más información sobre los estados de la ejecución de un trabajo que se implementa al crear un trabajo con AWS IoT Jobs.
-
QUEUED
Cuando AWS IoT Jobs implementa la ejecución de un trabajo para un dispositivo de destino, el estado de ejecución del trabajo se establece en
QUEUED. La ejecución del trabajo permanece en el estadoQUEUEDhasta que:-
El dispositivo recibe la ejecución del trabajo, invoca las operaciones de la API de trabajos e informa del estado como
IN_PROGRESS. -
Se cancela el trabajo o la ejecución del trabajo, o cuando se cumplen los criterios de anulación especificados y el estado cambia a
CANCELED. -
El dispositivo se elimina del grupo de destino y el estado cambia a
REMOVED.
-
-
IN_PROGRESS
Si su dispositivo de IoT se suscribe al reservado Temas de trabajos
$notifyy$notify-nextsu dispositivo invoca laStartNextPendingJobExecutionAPI o laUpdateJobExecutionAPI con el estado deIN_PROGRESS, AWS IoT Jobs establecerá el estado de ejecución del trabajo en.IN_PROGRESSLa API de
UpdateJobExecutionse puede invocar varias veces con un estadoIN_PROGRESS. Puede especificar detalles adicionales sobre los pasos de ejecución mediante el objetostatusDetails.nota
Si creas varios trabajos para cada dispositivo, AWS IoT Jobs y el protocolo MQTT no garantizan el orden de entrega.
-
SUCCEEDED
Cuando el dispositivo complete correctamente la operación remota, debe invocar la
UpdateJobExecutionAPI con el estado deSUCCEEDEDpara indicar que la ejecución del trabajo se ha realizado correctamente. AWS IoT A continuación, Jobs se actualiza y devuelve el estado de ejecución del trabajo comoSUCCEEDED.
-
ERROR
Cuando el dispositivo no puede completar la operación remota, debe invocar la
UpdateJobExecutionAPI con el estado deFailedpara indicar que se ha producido un error en la ejecución del trabajo. AWS IoT A continuación, Jobs se actualiza y devuelve el estado de ejecución del trabajo comoFailed. Mediante la Configuración de reintento de ejecución de trabajos se puede reintentar la ejecución de este trabajo en el dispositivo.
-
TIMED_OUT
Cuando el dispositivo no completa una etapa de la tarea cuando el estado es
IN_PROGRESS, o cuando no completa la operación remota dentro del tiempo de espera del temporizador en curso, AWS IoT Jobs establece el estado de ejecución de la tarea en.TIMED_OUTTambién se dispone de un temporizador de pasos para cada paso de un trabajo en curso, que solo se aplica a la ejecución del trabajo. La duración del temporizador en curso se especifica mediante la propiedadinProgressTimeoutInMinutesde la Configuración del tiempo de espera de las ejecuciones de trabajo. Mediante la Configuración de reintento de ejecución de trabajos se puede reintentar la ejecución de este trabajo en el dispositivo.
-
REJECTED
Cuando tu dispositivo recibe una solicitud no válida o incompatible, debe invocar la
UpdateJobExecutionAPI con el estado de.REJECTEDAWS IoT A continuación, Jobs se actualiza y devuelve el estado de ejecución del trabajo comoREJECTED. -
REMOVED
Cuando el dispositivo deja de ser un destino válido para la ejecución del trabajo, por ejemplo, cuando está separado de un grupo de objetos dinámico, Jobs de AWS IoT establece el estado de ejecución del trabajo en
REMOVED. Puede volver a asociar el dispositivo al grupo de destino y reiniciar la ejecución del trabajo en el dispositivo. -
CANCELADO
Cuando cancelas un trabajo o cancelas la ejecución de un trabajo mediante la consola o la
CancelJobExecutionAPICancelJobo, o cuando se cumplen los criterios de cancelación especificados mediante elConfiguración de anulación del trabajo, AWS IoT Jobs cancela el trabajo y establece el estado de ejecución del trabajo en.CANCELED