# generaltranslation: General Translation Core SDK: checkJobStatus
URL: https://generaltranslation.com/zh/docs/core/class/methods/translation/check-job-status.mdx
---
title: checkJobStatus
description: 用于监控作业进度的 checkJobStatus 方法 API 参考文档
---
## 概述
`checkJobStatus` 方法通过一个或多个项目作业的唯一标识符检查其当前状态。
此方法用于监控由 [`setupProject`](/docs/core/class/methods/translation/setup-project) 或 [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) 发起的异步操作进度。
```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}`));
```
要检查设置作业的状态,您必须先调用 [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) 和 [`setupProject`](/docs/core/class/methods/translation/setup-project)。
## 参考
### 参数
| 名称 | 类型 | 描述 |
| ------------ | ---------- | ------------------- |
| `jobIds` | `string[]` | 待检查的唯一作业标识符数组 |
| `timeoutMs?` | `number` | API 请求的可选超时时间 (毫秒) |
### 返回值
`Promise` - 作业状态对象组成的一维数组。
```typescript
type CheckJobStatusResult = {
jobId: string;
status: JobStatus;
error?: { message: string };
}[];
```
数组中的每个元素均包含:
| 属性 | 类型 | 描述 |
| -------- | --------------------- | ---------------------- |
| `jobId` | `string` | 已检索作业的标识符 |
| `status` | `JobStatus` | 作业的当前状态 |
| `error?` | `{ message: string }` | 当状态为 `'failed'` 时的错误信息 |
#### JobStatus
```typescript
type JobStatus = 'queued' | 'processing' | 'completed' | 'failed' | 'unknown';
```
* `'queued'` - 作业正在等待处理
* `'processing'` - 作业当前正在执行
* `'completed'` - 作业已成功完成
* `'failed'` - 作业因出错而失败
* `'unknown'` - 无法确定作业状态
***
## 示例
### 基本状态检查
```typescript copy
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;
}
const jobStatus = await pollJobStatus([setupResult.jobId]);
```
***
## 注意事项
* 当缺少上下文要素时,会自动运行设置。
* 设置负责语料库分析、上下文生成、术语表生成等。
* [`setupProject`](/docs/core/class/methods/translation/setup-project) 或 [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) 会返回作业 ID,应保存这些 ID 以便检查状态
* 为提高效率,你可以在一次调用中检查多个作业
## 后续步骤
* 参见 [`awaitJobs`](/docs/core/class/methods/translation/await-jobs),可使用自动轮询而不是手动检查状态
* 参见 [`setupProject`](/docs/core/class/methods/translation/setup-project) 以启动设置作业
* 参见 [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) 以在设置完成后继续操作
* 参见 [`getProjectData`](/docs/core/class/methods/translation/get-project-data) 了解项目信息