暂停任务

借助暂停任务,您可以暂停集成的执行,然后恢复。

在集成执行期间,当控制项到达暂停任务时,执行将停止,并且暂停任务后面的所有任务都将暂停。当发生以下任一事件时,集成会恢复执行:

  • 指定的暂停时间到期。
  • Suspensions API 收到恢复执行请求后。

您还可以为暂停任务配置输出变量(暂停结果),将其设置为任何值,并使用该值创建执行下游任务的分支条件。

比较审批任务、暂停任务和计时器任务

所有三个(审批暂停计时器)任务都执行类似的集成暂停和恢复功能。但它们之间存在细微差异。下表介绍了三个任务之间的差异。

审批任务 暂停任务 计时器任务
不支持自动恢复集成,需要人工干预来恢复集成。 支持手动和自动恢复集成。如果没有人工干预来撤消暂停,则集成会在暂停时间限制到期后自动恢复执行。 仅支持自动恢复集成。集成执行会在暂停时间限制到期后自动恢复。
无法通过 API 调用恢复集成。您必须使用集成界面手动解决暂停。 可以使用适用于集成的 Suspensions API 来恢复集成。 仅支持自动恢复集成。
集成暂停(已暂停)时,用户会收到通知。 集成暂停(已暂停)时,用户不会收到任何通知。 集成暂停(已暂停)时,用户不会收到任何通知。
支持输出变量(布尔值),可让您在恢复集成之前执行条件检查。但是,输出变量的值只能为 truefalse 支持输出变量(字符串),可让您在恢复集成之前执行条件检查。您可以为输出变量设置任何值。 不支持任何输出变量。

配置暂停任务

如需配置暂停任务,请执行以下步骤:

  1. Apigee 界面中,选择您的 Apigee 组织
  2. 点击开发 > 集成
  3. 选择现有集成,或通过点击创建集成来创建新集成。

    要创建新的集成,请执行以下操作:

    1. 创建 Integrations对话框中输入名称和说明。
    2. 从支持的区域列表中选择集成的区域
    3. 点击创建

    这将在集成设计器中打开集成。

  4. 集成设计器导航栏中,点击 + 添加任务/触发器 > 任务以查看可用任务列表。
  5. 点击暂停任务元素,并将其放入集成编辑器中。
  6. 点击设计器上的暂停任务元素以打开暂停任务配置窗格。
  7. 使用任务的配置属性配置其余字段,详见下表。

    系统会自动保存对属性的所有更改。

配置属性

下表介绍了暂停任务的配置属性。

属性 数据类型 说明
Suspension Time 整数 必须将集成执行暂停的时长(以分钟为单位)。最长时间限制为 44640 分钟(31 天),这也是默认值。

如果集成执行未在指定的时间限制内恢复,则集成会在时间限制到期后自动恢复执行,并将 Suspension result 变量的值设置为 Expired

Suspension result 字符串 用于存储暂停任务结果的变量。系统并未强制要求设置此变量的值。您可以根据自己的需要将此变量设置为任何值。如果您希望更好地控制集成的执行流程,则此变量会非常有用。例如,您可以读取暂停结果,并根据任何下游任务中的值配置条件决策。
Suspension Id 字符串 暂停任务的唯一标识符。系统会在集成暂停后立即设置此变量的值。您可以从集成界面的执行日志页面中获取该标识符的值。如果使用 API 触发集成,您还可以从 API 的响应对象获取该标识符的值。

您可以使用暂停 ID 或使用集成的执行 ID 来恢复集成的执行。

使用 Suspensions API 撤消暂停

Suspensions API 允许您通过 API 调用撤消暂停。如需通过 Suspensions API 撤消暂停,您必须具有集成的执行 ID 或暂停任务的暂停 ID。如需撤消暂停,您必须向以下 API 发出 POST 请求:

https://REGION-integrations.googleapis.com/v1/{name=projects/PROJECT/locations/LOCATION/integrations/INTEGRATION_ID/executions/EXECUTION_ID/suspensions/SUSPENSION_ID}:lift
    

在此 API 中,INTEGRATION_ID 是可选项。但是,您必须提供 EXECUTION_IDSUSPENSION_ID。如果您没有任何 ID 值,可以将该值替换为 -。在此 API 中,REGIONPROJECTLOCATION 是必填字段。

撤消暂停后,集成会恢复执行,并执行暂停任务后面的下游任务。

以下示例展示了如何使用 suspensions API 撤消暂停。

示例 1:仅使用暂停 ID 撤消暂停

  curl -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: application/json" \
  -H X-GFE-SSL: yes \
  -X POST \
  -d '{"suspension_result":"Approved"}' \
  https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/products/apigee/integrations/-/executions/-/suspensions/c6a13a79-a918-41e2-82b9-32b5a010755a:lift

在此示例中,对于暂停 ID c6a13a79-a918-41e2-82b9-32b5a010755aSuspension result 变量设置为 Approved

示例 2:仅使用执行 ID 撤消暂停

以下 curl 命令展示了如何在您只有执行 ID 的情况下撤消暂停:

  curl -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: application/json" \
  -H X-GFE-SSL: yes \
  -X POST \
  -d '{"suspension_result":"true"}' \
  https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/products/apigee/integrations/-/executions/76a391e7-c801-45d7-8046-eab20d167ec5/suspensions/-:lift

在此示例中,对于执行 ID 76a391e7-c801-45d7-8046-eab20d167ec5Suspension result 变量设置为 true

示例 3:同时使用执行 ID 和暂停 ID 撤消暂停

以下 curl 命令展示了如何在您同时有执行 ID 和暂停 ID 的情况下撤消暂停:

  curl -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: application/json" \
  -H X-GFE-SSL: yes \
  -X POST \
  -d '{"suspension_result":"{processname: "Release", owner: "John", status: "approved"};"}' \
  https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/products/apigee/integrations/-/executions/9b721baa-0a23-4576-b2b6-d251d163ea6f/suspensions/f01815bf-ed18-4e01-9d41-cc2ce7861e95:lift

在此示例中,对于暂停 ID f01815bf-ed18-4e01-9d41-cc2ce7861e95Suspension result 变量设置为 {processname: "Release", owner: "John", status: "approved"};

错误处理策略

任务的错误处理策略指定当任务因暂时性错误而失败时要执行的操作。如需了解如何使用错误处理策略,以及了解不同类型的错误处理策略,请参阅错误处理策略