> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 取消批量操作

> 停止尚未完成的批量作业。尚未开始的条目将被取消；已在运行的条目将被允许完成。

`cancelBulkOperation` 会停止你[提交](/submit-bulk-operation)的作业。它是**尽力而为且不可逆**的：仍处于 `QUEUED` 的条目会被取消，而已在 `RUNNING` 的条目会被允许完成并记录其结果。它不会回滚已完成的工作。

## 要求

* `Authorization: Basic <API_KEY>`
* 你的应用已启用批量 API 功能。
* 作业必须属于你的应用——未知或属于其他应用的作业 ID 将返回未找到。

## 变更

```graphql theme={null}
mutation CancelBulkOperation($bulkJobId: UUID!) {
  cancelBulkOperation(bulkJobId: $bulkJobId) {
    jobId
    status
    succeededItemCount
    failedItemCount
    skippedItemCount
  }
}
```

```json theme={null}
{
  "bulkJobId": "9c1e6f2a-1d4b-4a2e-8f0c-2b7e5a9d1234"
}
```

## 响应

```json theme={null}
{
  "data": {
    "cancelBulkOperation": {
      "jobId": "9c1e6f2a-1d4b-4a2e-8f0c-2b7e5a9d1234",
      "status": "CANCELLED",
      "succeededItemCount": 4,
      "failedItemCount": 0,
      "skippedItemCount": 0
    }
  }
}
```

## 参数

| 参数          | 类型      | 描述                              |
| ----------- | ------- | ------------------------------- |
| `bulkJobId` | `UUID!` | `submitBulkOperation` 返回的作业 ID。 |

## 响应字段

| 字段                                                            | 描述                                        |
| ------------------------------------------------------------- | ----------------------------------------- |
| `status`                                                      | 当作业停止接受新工作后为 `CANCELLED`。已成功或失败的条目会保留其结果。 |
| `succeededItemCount` / `failedItemCount` / `skippedItemCount` | 最终的逐条目计数，包括在取消调用生效后仍完成的条目。                |

## 错误

| 错误                    | HTTP | 何时发生                         |
| --------------------- | ---- | ---------------------------- |
| `BulkApiAccessDenied` | 403  | 你的应用未启用批量 API 功能。            |
| `BulkJobNotFound`     | 404  | 作业 ID 未知**或**属于其他应用（有意不可区分）。 |

取消已完成或已取消的作业**不是**错误——它会返回未更改的作业（见下文）。

<Note>
  取消操作具有**幂等性且可安全重试**。对已完成（`COMPLETED`、`COMPLETED_WITH_ERRORS`、`FAILED`）或已 `CANCELLED` 的作业调用该操作，会返回未更改的作业——它不会报错，也不会回滚已完成的条目。由于进行中的条目允许完成，如果你需要在取消后稳定下来的计数，请使用[跟踪批量作业](/track-bulk-job)进行轮询。
</Note>
