任务和任务执行状态 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

任务和任务执行状态

以下各节描述了 Amazon IoT 任务的生命周期和任务执行的生命周期。

作业状态

下图显示了 Amazon IoT 作业的不同状态。


                        
                        该图显示了 Amazon IoT 作业的不同状态。

您使用 J Amazon IoT obs 创建的任务可能处于以下状态之一:

  • SCHEDULED

    在使用 Amazon IoT 控制台、CreateJobAPI 或 API 创建初始任务或任务模板期间,您可以在 Amazon IoT 控制台或 CreateJobTemplateAP CreateJobI 或 CreateJobTemplateAPI 中选择可选SchedulingConfig的调度配置。当您启动包含特定 startTimeendTimeendBehavoir 的计划任务时,任务状态将更新为 SCHEDULED。当任务达到您选择的 startTime 或下一个维护时段的 startTime 时(如果您在维护时段中选择了任务推出),状态将从 SCHEDULED 更新为 IN_PROGRESS,并开始将任务文档推出到目标组中的所有设备。

  • 进行中

    当您使用 Amazon IoT 控制台或 CreateJobAPI 创建任务时,任务状态会更新为IN_PROGRESS。在任务创建期间, Amazon IoT Jobs 开始向目标组中的设备推出任务执行。在所有任务执行都推出后, Amazon IoT Jobs 就会等待设备完成远程操作。

    有关适用于进行中任务的并发和限制的信息,请参阅 任务限制

    注意

    IN_PROGRESS 任务达到当前维护时段结束时,任务文档的推出将停止。该任务将更新为 SCHEDULED,直至下一个维护时段的 startTime

  • COMPLETED

    连续任务通过以下方式之一进行处理:

    • 对于 选择可选计划配置的连续任务,此任务始终处于进行中,并继续针对添加到目标组的任何新设备运行。它从不会达到 COMPLETED 状态。

    • 对于选择 了可选计划配置的连续任务,以下表述是正确的:

      • 如果提供了 endTime,则连续任务将在 endTime 已过且所有任务执行都达到最终状态时达到 COMPLETED 状态。

      • 如果在可选计划配置中未提供 endTime,则连续任务将继续执行任务文档推出。

    对于快照任务,当其所有任务执行都进入最终状态(如 SUCCEEDEDFAILEDTIMED_OUTREMOVEDCANCELED)时,任务状态更改为 COMPLETED

  • CANCELED

    当您使用 Amazon IoT 控制台、CancelJobAPI 或取消任务时 任务中止配置,任务状态将更改为CANCELED。在任务取消期间, Amazon IoT 作业开始取消先前创建的任务执行。

    有关适用于正在取消的任务的并发和限制的信息,请参阅 任务限制

  • DELETION_IN_PROGRESS

    当您使用 Amazon IoT 控制台或 DeleteJobAPI 删除任务时,任务状态会更改为DELETION_IN_PROGRESS。在删除任务期间, Amazon IoT 作业开始删除先前创建的任务执行。删除所有任务执行后,该任务将从您的 Amazon 账户中消失。

任务执行状态

下表显示了 Amazon IoT 任务执行的不同状态,以及状态更改是由设备启动的,还是由 Amazon IoT 任务启动的。

任务执行状态和源
任务执行状态 由设备发起? 由 Amazon IoT 乔布斯发起? 终端状态? 是否可以重试?
QUEUED 不适用
IN_PROGRESS 不适用
SUCCEEDED 不适用
FAILED
TIMED_OUT
REJECTED
REMOVED
CANCELED

以下部分详细介绍了使用 Amazon IoT 作业创建任务时推出的任务执行状态。

  • QUEUED

    当 Amazon IoT Jobs 为目标设备推出任务执行时,任务执行状态将设置为QUEUED。任务执行保留为 QUEUED 状态,直到:

    • 您的设备收到任务执行,调用任务 API 操作并将状态报告为 IN_PROGRESS

    • 您取消任务或任务执行,或者当满足您指定的中止条件时,状态更改为 CANCELED

    • 您的设备已从目标组中移除且状态更改为 REMOVED

    
                                此图像显示排队的任务执行如何将状态更改为 IN_PROGRESS 以及在设备不接受任务创建请求时如何拒绝任务。
  • 进行中

    如果您的 IoT 设备订阅了预留任务主题$notify$notify-next,并且您的设备调用了 StartNextPendingJobExecution API 或 API,状态为IN_PROGRESS,则 Amazon IoT Jobs 会将任务执行状态设置为。UpdateJobExecution IN_PROGRESS

    UpdateJobExecution API 可以多次调用,状态为 IN_PROGRESS。您可以使用 statusDetails 对象指定有关执行步骤的其他详细信息。

    注意

    如果您为每台设备创建多个任务,则 Amazon IoT Jobs 和 MQTT 协议无法保证交付顺序。

  • SUCCEEDED

    当您的设备成功完成远程操作时,设备必须调用状态为的 UpdateJobExecution API,SUCCEEDED以表示任务执行成功。 Amazon IoT 然后,作业会更新任务执行状态并将其返回为SUCCEEDED

    
                                此图像显示正在进行的任务执行如何失败以及如何重试执行。
  • FAILED

    当您的设备无法完成远程操作时,设备必须调用状态为UpdateJobExecution的 API,Failed以表明任务执行失败。 Amazon IoT 然后,作业会更新任务执行状态并将其返回为Failed。您可以使用任务执行重试配置重试设备的这一任务执行。

    
                                此图像显示正在进行的任务执行如何失败以及如何重试执行。
  • TIMED_OUT

    当您的设备在状态为时未能完成任务步骤IN_PROGRESS,或者在正在进行的计时器的超时时间内未能完成远程操作时,J Amazon IoT obs 会将任务执行状态设置为TIMED_OUT。您还有一个用于正在进行的任务的每个任务步骤的步骤计时器,并且仅适用于任务执行。正在进行的计时器持续时间是使用 任务执行超时配置inProgressTimeoutInMinutes 属性指定的。您可以使用任务执行重试配置重试设备的这一任务执行。

    
                                此图像显示正在进行的任务执行如何超时以及如何重试执行。
  • REJECTED

    当您的设备收到无效或不兼容的请求时,设备必须调用状态为UpdateJobExecution的 API REJECTED。 Amazon IoT 然后,作业会更新任务执行状态并将其返回为REJECTED

  • REMOVED

    当设备不再是任务执行的有效目标时,例如当它脱离动态事物组时, Amazon IoT Jobs 将任务执行状态设置为 REMOVED。您可以将事物重新附加到目标组,然后重新启动设备的任务执行。

  • CANCELED

    当您使用控制台或或 CancelJobExecution API 取消任务或取消任务执行时,CancelJob或者当满足使用指定的中止条件时,J Amazon IoT obs 会取消该任务并将任务执行状态设置 任务中止配置为。CANCELED