API 请求生命周期
API 请求遵循特定的生命周期阶段和状态,具体取决于作执行的复杂性和长度。
Redis 云 |
---|
Redis Cloud 所有者和查看者可以利用 RESTful API,该 API 允许对各种资源(包括订阅、数据库和相关基础设施)进行作。
启用后,您可以使用 REST API 创建、更新和删除订阅、数据库和其他实体。
所有创建、更新和删除 API作 (POST
,PUT
和DELETE
) 和一些查询作 (GET
) 异步运行,这意味着预置在后台进行。当您提交请求时,后台进程(称为 Task)将开始处理该请求。响应对象包括一个 ID,该 ID 允许您确定后台进程在执行其工作时的状态。
对于不创建或修改资源的作(例如大多数 GET作),API 是同步的;也就是说,响应对象报告请求的结果。
异步作有两个主要阶段:处理和预置。在两个阶段都完成之前,资源不可用。

任务处理
在此阶段,将接收、评估、规划和执行请求。
使用任务跟踪请求
许多作是异步的,包括 CREATE、UPDATE 和 DELETE作。此类作的响应对象提供了一个taskId
标识符,用于跟踪基础作的进度。
您可以查询taskId
要使用GET /v1/tasks/{taskId}
.
您还可以使用GET /tasks
任务进程状态
在处理请求期间,任务会经历以下状态:
received
- 收到请求并等待处理。processing-in-progress
- 一个专门的 worker 正在处理请求。processing-completed
- 请求处理成功,并且正在预置(或取消预置,具体取决于具体请求)。 一个response
segment 包含在任务状态 JSON 响应中。 响应包括resourceId
对于请求创建的每个资源,例如 Subscription 或 Database ID。processing-error
- 请求处理失败。 任务状态 JSON 响应中包含详细原因或原因。
received
state 无法取消,它将等待完成(即处理和供应)。如果要撤消由任务执行的作,请执行补偿作(例如:删除无意中创建的订阅)任务预置阶段
当处理阶段成功且任务处于processing-completed
状态,则预置阶段将启动。
在预置阶段,API 会编排请求所需的所有基础设施、资源和依赖项。
预置阶段可能需要几分钟才能完成。您可以查询资源标识符以跟踪预置阶段的进度。
例如,在预置新订阅时,请使用GET /v1/subscriptions/{subscriptionId}
,其中{subscriptionId}
是您在任务位于processing-completed
州。
预配状态值
在预置资源(例如订阅、数据库或云帐户)期间,资源会通过以下状态进行转换:
pending
- 正在进行配置。active
- 配置已成功完成。deleting
- 正在进行取消配置和删除。error
- 在预置阶段发生错误,包括错误的详细信息。
进程限制
以下限制适用于异步作:
-
对于每个账户,仅同时处理一个作。当为同一账户发送多个任务时,将依次接收和处理这些任务。
-
预配阶段可以并行执行,但以下情况除外:
- 订阅创建、更新和删除:您不能同时更改(设为非活动)三个以上的订阅。
- 在现有订阅中创建数据库:这可能会导致订阅状态从
active
自pending
在数据库预置期间,例如需要调整集群大小或更新集群元数据的数据库大小。
-
例如:
- 同时发送多个 “create database” 任务将导致每个任务都位于
received
状态,等待处理。 - 当第一个任务开始处理时,它将被移动到
processing-in-progress
州。 - 当第一个任务完成时(执行
processing-completed
或processing-error
),则第二个任务将开始处理,依此类推。 - 通常,处理阶段比预置阶段快得多,并且多个任务将同时预置。
- 如果创建数据库需要更新订阅,则订阅状态将设置为
pending
. 当您一个接一个地创建多个数据库时,我们建议您在每个数据库创建请求的处理阶段之后检查订阅状态。 如果订阅在pending
状态,您必须等待订阅更改完成并返回订阅状态active
.
- 同时发送多个 “create database” 任务将导致每个任务都位于