

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

# 在 HealthOmics 工作流程中运行生命周期
<a name="monitoring-runs"></a>

您可以通过监控运行状态来跟踪运行的进度。 HealthOmics 在运行的整个生命周期中更新运行状态。

您可以使用以下任一方法检索运行状态：
+  HealthOmics 控制台会在**Runs**页面上显示每次运行的状态。
+ **GetRun**API 操作返回当前的运行状态。
+ 您可以使用 EventBridge 事件监控运行状态。有关更多信息，请参阅 [EventBridge 与一起使用 AWS HealthOmics](eventbridge.md)。

**Topics**
+ [运行状态值](#run-status-values)
+ [任务重试次数](#run-status-task-retries)
+ [运行状态对定价的影响](#run-status-billing)

## 运行状态值
<a name="run-status-values"></a>

开始运行时， HealthOmics 将运行状态设置为**Pending**。随着运行的生命周期，会 HealthOmics 更新状态值以反映其当前进度。

**注意**  
除了 “正在运行” 之外，在任何运行状态下，您都不会产生任何费用。有关详细信息，请参阅下一节。

HealthOmics 支持以下运行状态值：

**待定**  
运行在队列中，正在等待开始。在开始之前，跑步通常会在短时间内处于待定状态。  
+ 如果您同时提交多个作业，则运行可能会在 “待定” 状态下停留更长时间。
+ 在您的账户达到最大并发运行次数后，运行仍处于 “待处理” 状态。
+ 如果该运行属于已达到其任何资源最大值的运行组，则该运行仍处于 “待处理” 状态。
+ 您可以调整运行优先级，以便特定的排队运行在其他运行之前开始。有关运行优先级的更多信息，请参阅[运行优先级](creating-run-groups.md#run-priority)。

**启动**  
HealthOmics 创建运行并配置运行所需的资源（例如临时运行存储空间和引擎节点）。  
+ HealthOmics 在运行开始时配置临时运行存储空间，并在运行处于停止状态时取消配置运行存储空间。

**Running**  
在导入过程、每个任务的处理和导出过程中，运行仍处于 “运行” 状态。  
+ HealthOmics 将输入文件导入到临时运行的存储文件系统。输入文件是只读的，以防止任务修改工作流中其他任务的输入。
+ 在文件导出期间，将 HealthOmics 输出文件从运行存储文件系统导出到 S3 位置。
+ HealthOmics 在运行状态为 “正在运行” 时 CloudWatch ，将运行日志和任务日志实时提供给。有关更多信息，请参阅 [登录 CloudWatch](monitoring-cloudwatch-logs.md#cloudwatch-logs)。

**停止**  
导出过程完成后，运行将变为 “正在停止” 状态。  
+ HealthOmics 取消配置所有资源（包括运行存储文件系统和引擎节点）。

**已完成**  
资源取消置备 HealthOmics 完成后，运行将转换为 “已完成”。  
+ HealthOmics 已完成所有运行任务并无错误地导出输出数据。
+ 运行输出可在指定的 Amazon S3 URI 输出位置中找到。对于 WDL 和 CWL， HealthOmics生成运行输出摘要文件，该文件提供有关信息。[HealthOmics 运行输出](workflows-run-outputs.md)
+ 中提供了最终的运行清单日志和引擎日志（如果适用） CloudWatch。
+ 对于支持任务重试的运行，处于 “已完成” 状态的运行可能包括一个或多个失败的任务。只要每个失败的任务成功重试，就会将运行 HealthOmics 转换为 “已完成”。 HealthOmics 为每次重试分配一个新的任务 ID，因此运行包括失败尝试和已完成尝试的任务 IDs 。

**失败**  
HealthOmics 遇到了一个或多个错误，但未能完成所有运行任务。  
+ 在 HealthOmics 取消配置资源的同时，失败的运行会转变为 “停止” 状态。

**已取消**  
用户发起了取消运行的请求。  
+ HealthOmics 停止所有正在运行的任务并取消配置所有资源。
+ HealthOmics 当用户取消运行时，不会导出任何运行输出数据。对于已取消的运行，您无权访问任何中间文件。
+ 取消前，您的账户会因运行状态为 “运行” 所消耗的任务和资源而产生费用。
+ 如果您取消处于 “待定” 或 “正在启动” 状态的跑步，则不收取任何费用。

## 任务重试次数
<a name="run-status-task-retries"></a>

HealthOmics 支持对因服务错误而失败的任务进行任务重试（5XX HTTP 状态代码）。

如果运行中的每个任务最终都完成，即使它们需要重试，也会将运行 HealthOmics 转换为 “已完成”。 HealthOmics 为每次重试分配一个新的任务 ID，因此运行包括失败尝试和已完成尝试的任务 IDs 。

默认的重试行为取决于工作流程使用的定义语言。Nextflow 的默认设置是不重试。对于 WDL 和 CWL，最多会 HealthOmics 尝试对失败的任务进行两次重试，但您可以选择不对特定任务或工作流中的所有任务进行任务重试。任务重试对于解决间歇性服务错误很有用。但是，你可以考虑选择退出一个等性的任务。

有关每种工作流程定义语言的具体信息，请参阅以下主题：
+ WDL — 在工作流程定义中配置任务重试行为。请参见[配置 WDL 任务重试行为](workflow-languages-wdl.md#workflow-wdl-task-retry)。
+ Nextflow — 在 Nextflow 配置文件或工作流程定义中配置任务重试行为。请参阅[配置 Nextflow 任务重试行为](workflow-definition-nextflow.md#workflow-nextflow-retry-5xx)。
+ CWL — 在工作流程定义中配置任务重试行为。请参见[配置 CWL 任务重试行为](workflow-languages-cwl.md#workflow-cwl-retry-5xx)。

## 运行状态对定价的影响
<a name="run-status-billing"></a>

运行状态为 “正在运行” 时，您的账户可能会产生费用。在任何其他运行状态下，您都不会产生任何费用。例如，当运行处于 “正在启动” 或 “停止” 状态时，不收取资源费用。

以 “运行” 状态运行会产生以下计费影响：
+ 当运行状态为 “运行” 时，您的账户会因运行存储文件系统的使用量而产生费用。有关运行存储类型的信息，请参见[在 HealthOmics 工作流程中运行存储类型](workflows-run-types.md)。
+ 您的账户会根据您在工作流程定义中为每个任务指定的计算和内存资源以及任务持续时间对正在运行的任务产生费用。有关更多信息，请参阅 [HealthOmics 任务的计算和内存要求](memory-and-compute-tasks.md)。
+ 每项任务的最低计费阈值为一分钟。如果您运行任务的时间少于一分钟，则需要按最少一分钟的使用量付费。如果可能，将小任务分组在一起以优化成本。分组任务还可以避免多个连续任务的启动，从而缩短运行时间。

有关 HealthOmics 定价的更多信息，请参阅定[HealthOmics 价](https://aws.amazon.com/healthomics/pricing/)。