> ## 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 會回傳 not-found。

## Mutation

```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
    }
  }
}
```

## 參數

| Parameter   | Type    | Description                     |
| ----------- | ------- | ------------------------------- |
| `bulkJobId` | `UUID!` | `submitBulkOperation` 回傳的任務 ID。 |

## 回應欄位

| Field                                                         | Description                                  |
| ------------------------------------------------------------- | -------------------------------------------- |
| `status`                                                      | 一旦任務停止接受新工作即為 `CANCELLED`。先前已成功或失敗的項目會保留其結果。 |
| `succeededItemCount` / `failedItemCount` / `skippedItemCount` | 最終的每項目計數，包括在取消呼叫到達後仍完成的項目。                   |

## 錯誤

| Error                 | HTTP | When                               |
| --------------------- | ---- | ---------------------------------- |
| `BulkApiAccessDenied` | 403  | 你的應用程式沒有大量 API 能力。                 |
| `BulkJobNotFound`     | 404  | 任務 ID 不存在，**或** 屬於另一個應用程式（刻意不可區分）。 |

取消已完成或已取消的任務**不是**錯誤——會回傳未變更的任務（見下文）。

<Note>
  取消是**冪等且可安全重試**。對已完成（`COMPLETED`、`COMPLETED_WITH_ERRORS`、`FAILED`）或已 `CANCELLED` 的任務呼叫此操作，會回傳未變更的任務——永不產生錯誤，且不會回復已完成的項目。由於執行中的項目允許完成，若在取消後需要最終結算的計數，請使用 [追蹤大量任務](/track-bulk-job) 來輪詢任務。
</Note>
