

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

# 作业处于 “可`运行`” 状态
<a name="sm_job_stuck_in_runnable"></a>

如果 Amazon Batch 检测到你有`RUNNABLE`任务挡住队列前面，你会[服务作业队列阻塞事件](batch-service-job-queue-blocked-events.md)收到来信并说明原因。同样的原因也会更新到 `statusReason` 字段，作为 `[ListServiceJobs](https://docs.amazonaws.cn/batch/latest/APIReference/API_ListServiceJobs.html)` 和 `[DescribeServiceJob](https://docs.amazonaws.cn/batch/latest/APIReference/API_DescribeServiceJob.html)` API 调用的一部分。

或者，您可以通过 `[CreateJobQueue](https://docs.amazonaws.cn/batch/latest/APIReference/API_CreateJobQueue.html)` 和 [`UpdateJobQueue`](https://docs.amazonaws.cn/batch/latest/APIReference/API_UpdateJobQueue.html) API 操作配置 `jobStateTimeLimitActions` 参数。该`jobStateTimeLimitActions`参数指定对处于特定状态的作业 Amazon Batch 执行的一组操作。您可以通过 `maxTimeSeconds` 字段设置以秒为单位的时间阈值。

对于连接到`SAGEMAKER_TRAINING`服务环境的任务队列，您可以使用的唯一操作`jobStateTimeLimitActions.action`是`TERMINATE`，这将终止作业。

例如，对于处于 `RUNNABLE` 状态等待足够容量可用的任何作业，您可以将 `jobStateTimeLimitActions` 参数设置为最多等待 4 小时。为此，可以在终止作业之前`reason``maxTimeSeconds`将其设置为`CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY`和设置为 14400，并允许下一个作业进入作业队列的开头。

以下各节分别描述了一种 Amazon Batch 可以推断的不同类型的屏蔽原因。每个部分包括：
+ `statusReason`设置开启`ListServiceJobs`和 `DescribeServiceJob` API 操作。
+ `jobStateTimeLimitActions`配置的`reason`值。
+ 如果`jobStateTimeLimitActions`触发终止，则`statusReason`显示出来。

**Topics**
+ [由于容量问题，作业停留在 “`可运行`” 状态](sm_job_stuck_in_runnable_capacity.md)
+ [由于配置错误，作业停留在 `RUNNABL` E 中](sm_job_stuck_in_runnable_misconfiguration.md)
+ [使用`作业`自动修复 StateTimeLimitActions](sm_job_stuck_in_runnable_time_limit_actions.md)