

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
<a name="iot-jobs-lifecycle"></a>

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 de trabajo
<a name="iot-jobs-states"></a>

El siguiente diagrama muestra los diferentes estados de un AWS IoT trabajo.

![Imagen que muestra los diferentes estados de un AWS IoT trabajo.](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/job-states-diagram.png)


Un trabajo que cree con AWS IoT Jobs puede estar en uno de los siguientes estados:
+ 

**SCHEDULED**  
Durante la creación inicial del trabajo o de la plantilla de trabajo mediante la AWS IoT consola, [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)la [CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html)API o la API, puede seleccionar la configuración de programación opcional en la AWS IoT consola o `SchedulingConfig` en la [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)API o [CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html)API. Al iniciar un trabajo programado que contiene un `startTime`, `endTime` y `endBehavior` específicos y el estado del trabajo se actualiza a `SCHEDULED`. Cuando el trabajo llegue al `startTime` seleccionado o al `startTime` del siguiente periodo de mantenimiento (si seleccionó el despliegue del trabajo durante dicho periodo), el estado se actualizará de `SCHEDULED` a `IN_PROGRESS` y 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](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)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](job-limits.md).
**nota**  
Cuando un trabajo de `IN_PROGRESS` llegue al final del periodo de mantenimiento actual, se detendrá el despliegue del documento del trabajo. El trabajo se actualizará `SCHEDULED` hasta el `startTime` del 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 estado `COMPLETED` cuando el `endTime` haya pasado y todas las ejecuciones de trabajos hayan alcanzado un estado terminal.
    + Si *no* se ha proporcionado un `endTime` en 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 `COMPLETED` cuando todas sus ejecuciones pasan a un estado terminal, como `SUCCEEDED`, `FAILED`, `TIMED_OUT`, `REMOVED` o `CANCELED`.
+ 

**CANCELADO**  
Al cancelar un trabajo mediante la AWS IoT consola, la [CancelJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html)API o la[Configuración de anulación del trabajo](jobs-configurations-details.md#job-abort-using), 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](job-limits.md).
+ 

**DELETION\_IN\_PROGRESS**  
Al eliminar un trabajo mediante la AWS IoT consola o la [DeleteJob](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html)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 trabajos previamente creadas. Una vez que se hayan eliminado todas las ejecuciones de trabajos, el trabajo desaparecerá de su AWS cuenta.

## Estados de ejecución de trabajos
<a name="iot-job-execution-states"></a>

En la siguiente tabla se muestran los diferentes estados de la ejecución de una AWS IoT tarea y si el cambio de estado lo inicia el dispositivo o AWS IoT Jobs.


**Estados y origen de ejecución de trabajos**  

| 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 despliega la ejecución de una tarea para un dispositivo de destino, el estado de ejecución de la tarea se establece en`QUEUED`. La ejecución del trabajo permanece en el estado `QUEUED` hasta 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`.  
![Imagen que muestra cómo la ejecución de un trabajo en cola cambia de estado a IN_PROGRESS y cómo un trabajo puede ser REJECTED si el dispositivo no acepta la solicitud de creación de trabajo.](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/JE-queued-inprogress.png)
+ 

**IN\_PROGRESS**  
Si su dispositivo IoT se suscribe a la reserva [Temas de trabajos](reserved-topics.md#reserved-topics-job) `$notify` y`$notify-next`, además, invoca la `StartNextPendingJobExecution` API o la `UpdateJobExecution` API con el estado de`IN_PROGRESS`, AWS IoT Jobs establecerá el estado de ejecución del trabajo en. `IN_PROGRESS`

  La API de `UpdateJobExecution` se puede invocar varias veces con un estado `IN_PROGRESS`. Puede especificar detalles adicionales sobre los pasos de ejecución mediante el objeto `statusDetails`.
**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, deberá invocar la `UpdateJobExecution` API con un estado igual `SUCCEEDED` a para indicar que la ejecución del trabajo se realizó correctamente. AWS IoT A continuación, Jobs actualiza y devuelve el estado de ejecución del trabajo como`SUCCEEDED`.   
![Imagen que muestra cómo puede producirse un error en la ejecución de un trabajo en curso y cómo reintentar dicha ejecución.](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/JE-success-path.png)
+ 

**ERROR**  
Si el dispositivo no puede completar la operación remota, debe invocar la `UpdateJobExecution` API con un estado igual `Failed` a para indicar que se ha producido un error en la ejecución de la tarea. AWS IoT A continuación, Jobs actualiza y devuelve el estado de ejecución del trabajo como`Failed`. Mediante la [Configuración de reintento de ejecución de trabajos](jobs-configurations-details.md#job-retry-configuration) se puede reintentar la ejecución de este trabajo en el dispositivo.  
![Imagen que muestra cómo puede producirse un error en la ejecución de un trabajo en curso y cómo reintentar dicha ejecución.](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/JE-inprogress-failed.png)
+ 

**TIMED\_OUT**  
Si el dispositivo no puede completar un paso de la tarea en ese estado`IN_PROGRESS`, o si no puede completar 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_OUT` Tambié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 propiedad `inProgressTimeoutInMinutes` de la [Configuración del tiempo de espera de las ejecuciones de trabajo](jobs-configurations-details.md#job-timeout-configuration). Mediante la [Configuración de reintento de ejecución de trabajos](jobs-configurations-details.md#job-retry-configuration) se puede reintentar la ejecución de este trabajo en el dispositivo.  
![Imagen que muestra cómo se puede agotar el tiempo de espera de ejecución de un trabajo en curso y cómo reintentar dicha ejecución.](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/JE-inprogress-timedout.png)
+ 

**REJECTED**  
Cuando el dispositivo recibe una solicitud no válida o incompatible, debe invocar la `UpdateJobExecution` API con el estado de. `REJECTED` AWS IoT A continuación, Jobs actualiza y devuelve el estado de ejecución del trabajo como`REJECTED`.
+ 

**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 se cancela un trabajo o se cancela la ejecución de un trabajo mediante la consola `CancelJob` o la `CancelJobExecution` API, o cuando se cumplen los criterios de anulación especificados mediante el[Configuración de anulación del trabajo](jobs-configurations-details.md#job-abort-using), AWS IoT Jobs cancela el trabajo y establece el estado de ejecución del trabajo en. `CANCELED`