# General Translation Platform: checkJobStatus
URL: https://generaltranslation.com/zh/docs/platform/core/reference/gt-class-methods/translation/check-job-status.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 检查翻译任务或 setup 任务的当前状态。checkJobStatus 的 API 参考。

通过轮询任务状态来监控由 [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project) 或 [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) 发起的异步操作。

## 概览 [#overview]

使用一组任务 ID 调用 `checkJobStatus`。它会返回一个扁平数组，其中每个任务 都对应一个状态对象。

| 项目                         | 说明                     | 类型                              | 可选 | 默认      |
| -------------------------- | ---------------------- | ------------------------------- | -- | ------- |
| [`jobIds`](#job-ids)       | 要检查的唯一任务标识符。           | `string[]`                      | 否  | —       |
| [`timeoutMs`](#timeout-ms) | API 请求的超时时间 (以毫秒为单位) 。 | `number`                        | 是  | `60000` |
| [返回值](#returns)            | 每个请求的任务对应的状态对象。        | `Promise<CheckJobStatusResult>` | —  | —       |

```typescript
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

const statuses = await gt.checkJobStatus(['job-123', 'job-456']);
statuses.forEach((job) => console.log(`${job.jobId}: ${job.status}`));
```

签名：

```typescript
checkJobStatus(
  jobIds: string[],
  timeoutMs?: number
): Promise<CheckJobStatusResult>
```

*注意：`checkJobStatus` 要求 GT 实例上提供 `apiKey` (或 `devApiKey`) 和 `projectId`。要检查 setup 任务 的状态，请先调用 [`uploadSourceFiles`](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) 和 [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project)。*

## 工作原理 [#how-it-works]

* **批量检查。** 你可以通过一次调用检查多个任务，以提高效率。
* **任务来源。** 任务 ID 来自 [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project) 或 [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files)；请将它们保存下来，以便稍后检查状态。

对于 [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) 返回的翻译任务，请使用 [`awaitJobs`](/docs/platform/core/reference/gt-class-methods/translation/await-jobs) 而不是手动轮询。对于初始化作业 ID，请使用 `checkJobStatus` 进行轮询。

## 参数 [#parameters]

| 参数                         | 说明                    | 类型         | 可选 | 默认值     |
| -------------------------- | --------------------- | ---------- | -- | ------- |
| [`jobIds`](#job-ids)       | 要检查的唯一 任务 标识符。        | `string[]` | 否  | —       |
| [`timeoutMs`](#timeout-ms) | API 请求超时时间 (以毫秒为单位) 。 | `number`   | 是  | `60000` |

### `jobIds` [#job-ids]

**类型** `string[]` · **必填**

要检查的 任务 的唯一标识符。

### `timeoutMs` [#timeout-ms]

**类型** `number` · **可选** · **默认** `60000`

请求超时时间 (以毫秒为单位) 。

## 返回值 [#returns]

**类型** `Promise<CheckJobStatusResult>`

解析结果为任务状态对象的扁平数组：

```typescript
type CheckJobStatusResult = {
  jobId: string;
  status: JobStatus;
  error?: { message: string };
}[];
```

| 属性       | 描述                     | 类型                        |
| -------- | ---------------------- | ------------------------- |
| `jobId`  | 被检查的 任务 标识符。          | `string`                  |
| `status` | 任务 的当前状态。             | [`JobStatus`](#jobstatus) |
| `error`  | 状态为 `'failed'` 时的错误信息。 | `{ message: string }`     |

### `JobStatus`

```typescript
type JobStatus = 'queued' | 'processing' | 'completed' | 'failed' | 'unknown';
```

* `'queued'` — 任务 正在等待处理。
* `'processing'` — 任务 当前正在执行。
* `'completed'` — 任务 已成功完成。
* `'failed'` — 任务 处理时发生错误并失败。
* `'unknown'` — 无法确定 任务 的状态。

## 示例 [#examples]

```typescript
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

const fileRefs = [
  {
    fileId: 'file-123',
    versionId: 'version-456',
    branchId: 'branch-789',
    fileName: 'app.json',
    fileFormat: 'JSON',
  },
  {
    fileId: 'file-789',
    versionId: 'version-012',
    branchId: 'branch-789',
    fileName: 'content.md',
    fileFormat: 'MD',
  },
];

const setupResult = await gt.setupProject(fileRefs);

async function pollJobStatus(jobIds: string[]) {
  const status = await gt.checkJobStatus(jobIds);

  status.forEach((job) => {
    console.log(`Job ${job.jobId}:`);
    console.log(`  Status: ${job.status}`);

    if (job.error) {
      console.log(`  Error: ${job.error.message}`);
    }
  });

  return status;
}

if (setupResult.status === 'queued') {
  const jobStatus = await pollJobStatus([setupResult.setupJobId]);
}
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
