API 请求生命周期

API 请求遵循特定的生命周期阶段和状态,具体取决于作执行的复杂性和长度。

Redis 云

Redis Cloud 所有者和查看者可以利用 RESTful API,该 API 允许对各种资源(包括订阅、数据库和相关基础设施)进行作。

启用后,您可以使用 REST API 创建、更新和删除订阅、数据库和其他实体。

所有创建、更新和删除 API作 (POST,PUTDELETE) 和一些查询作 (GET) 异步运行,这意味着预置在后台进行。当您提交请求时,后台进程(称为 Task)将开始处理该请求。响应对象包括一个 ID,该 ID 允许您确定后台进程在执行其工作时的状态。

对于不创建或修改资源的作(例如大多数 GET作),API 是同步的;也就是说,响应对象报告请求的结果。

异步作有两个主要阶段:处理和预置。在两个阶段都完成之前,资源不可用。

任务处理

在此阶段,将接收、评估、规划和执行请求。

使用任务跟踪请求

许多作是异步的,包括 CREATE、UPDATE 和 DELETE作。此类作的响应对象提供了一个taskId标识符,用于跟踪基础作的进度。

您可以查询taskId要使用GET /v1/tasks/{taskId}.

您还可以使用GET /tasks

任务进程状态

在处理请求期间,任务会经历以下状态:

  • received- 收到请求并等待处理。
  • processing-in-progress- 一个专门的 worker 正在处理请求。
  • processing-completed- 请求处理成功,并且正在预置(或取消预置,具体取决于具体请求)。 一个responsesegment 包含在任务状态 JSON 响应中。 响应包括resourceId对于请求创建的每个资源,例如 Subscription 或 Database ID。
  • processing-error- 请求处理失败。 任务状态 JSON 响应中包含详细原因或原因。
注意:
到达receivedstate 无法取消,它将等待完成(即处理和供应)。如果要撤消由任务执行的作,请执行补偿作(例如:删除无意中创建的订阅)

任务预置阶段

当处理阶段成功且任务处于processing-completed状态,则预置阶段将启动。 在预置阶段,API 会编排请求所需的所有基础设施、资源和依赖项。

注意:
术语 “provisioning” 是指应用请求所需的所有基础设施更改。这包括预置新的或额外的基础设施。

预置阶段可能需要几分钟才能完成。您可以查询资源标识符以跟踪预置阶段的进度。

例如,在预置新订阅时,请使用GET /v1/subscriptions/{subscriptionId},其中{subscriptionId}是您在任务位于processing-completed州。

预配状态值

在预置资源(例如订阅、数据库或云帐户)期间,资源会通过以下状态进行转换:

  • pending- 正在进行配置。
  • active- 配置已成功完成。
  • deleting- 正在进行取消配置和删除。
  • error- 在预置阶段发生错误,包括错误的详细信息。

进程限制

以下限制适用于异步作:

  • 对于每个账户,仅同时处理一个作。当为同一账户发送多个任务时,将依次接收和处理这些任务。

  • 预配阶段可以并行执行,但以下情况除外:

    • 订阅创建、更新和删除:您不能同时更改(设为非活动)三个以上的订阅。
    • 在现有订阅中创建数据库:这可能会导致订阅状态从activepending在数据库预置期间,例如需要调整集群大小或更新集群元数据的数据库大小。
  • 例如:

    • 同时发送多个 “create database” 任务将导致每个任务都位于received状态,等待处理。
    • 当第一个任务开始处理时,它将被移动到processing-in-progress州。
    • 当第一个任务完成时(执行processing-completedprocessing-error),则第二个任务将开始处理,依此类推。
    • 通常,处理阶段比预置阶段快得多,并且多个任务将同时预置。
    • 如果创建数据库需要更新订阅,则订阅状态将设置为pending. 当您一个接一个地创建多个数据库时,我们建议您在每个数据库创建请求的处理阶段之后检查订阅状态。 如果订阅在pending状态,您必须等待订阅更改完成并返回订阅状态active.
为本页评分
返回顶部 ↑