# General Translation Platform: awaitJobs
URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/translation/await-jobs.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: キューに入った翻訳ジョブを、完了・失敗するかタイムアウトするまでポーリングします。awaitJobs の API リファレンス。

翻訳ジョブのステータスをポーリングし、すべてのジョブが終端状態 (`completed`、`failed`、または `unknown`) に達するか、タイムアウトに達すると解決します。[`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) を使いやすくしたラッパーで、ポーリング処理を代行します。

## 概要 [#overview]

[`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) の結果またはジョブ ID の配列を `awaitJobs` に渡します。必要に応じてポーリング設定も指定できます。各ジョブの最終ステータスが返されます。

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

const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: ['es', 'fr'],
});

const result = await gt.awaitJobs(enqueueResult);

if (result.complete) {
  console.log('All jobs finished');
} else {
  console.log('Timed out — some jobs still in progress');
}
```

シグネチャ:

```typescript
awaitJobs(
  jobs: EnqueueFilesResult | string[],
  options?: AwaitJobsOptions
): Promise<AwaitJobsResult>
```

*警告: `complete: true` は、すべてのジョブが終端状態に達したことを意味します。これは、すべてのジョブが成功したことを意味する**ものではありません**。成功しているかどうかは、各 `job.status` を確認してください。*

## 仕組み [#how-it-works]

* **自動ポーリング。** 手動のポーリングループは不要です。`while` ループ内で [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) を自分で呼び出す必要はありません。
* **終端状態。** すべてのジョブが `completed`、`failed`、または `unknown` になると解決されます。API が見つけられないジョブは `'unknown'` として扱われます。
* **ベストエフォートのタイムアウト。** タイムアウトはベストエフォートの上限です。メソッドは現在のポーリングを完了してから解決されます。
* **空の入力。** エンキュー結果にジョブが含まれていない場合、またはジョブ ID の配列が空の場合、メソッドは即座に `{ complete: true, jobs: [] }` を返して解決されます。

## パラメータ [#parameters]

| パラメータ                 | 説明                                                                                                             | 型                                                                                                             | 任意  | デフォルト |
| --------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | --- | ----- |
| [`jobs`](#jobs)       | [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) が返す結果、またはジョブ IDの配列。 | [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) | `string[]` | いいえ | —     |
| [`options`](#options) | ポーリング設定。                                                                                                       | `AwaitJobsOptions`                                                                                            | はい  | —     |

### `jobs`

**型** [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) | `string[]` · **必須**

[`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) が返す結果、または [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project) などの別のワークフローが返すジョブ ID です。エンキュー結果を渡す場合、その `jobData` には、ポーリング対象のジョブを特定する情報が含まれます。

### `options`

**型** `AwaitJobsOptions` · **任意**

ポーリング設定:

| Field                    | 説明                         | 型     | 任意 | デフォルト       |
| ------------------------ | -------------------------- | -------- | -- | ----------- |
| `pollingIntervalSeconds` | ステータスの更新を確認するポーリングの間隔。     | `number` | はい | `5`         |
| `timeoutSeconds`         | 現在のステータスを返して完了するまでの最大待機時間。 | `number` | はい | `600` (10分) |

## 戻り値 [#returns]

**型** `Promise<AwaitJobsResult>`

全体フラグと各ジョブの最終ステータスを含む `AwaitJobsResult` に解決されます:

```typescript
type AwaitJobsResult = {
  /** すべてのジョブが終端状態に達したかどうか（成功とは限らない）。 */
  complete: boolean;
  jobs: JobResult[];
};

type JobResult = {
  jobId: string;
  status: JobStatus;
  error?: { message: string };
};
```

| プロパティ           | 説明                                                 | 型                                                                                                    |
| --------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `complete`      | 進行中のジョブが残っていなければ `true`、タイムアウトに達した場合は `false`。     | `boolean`                                                                                            |
| `jobs`          | 各ジョブの最終ステータス。                                      | `JobResult[]`                                                                                        |
| `jobs[].jobId`  | ジョブ識別子。                                            | `string`                                                                                             |
| `jobs[].status` | 最終ステータス: `'completed'`、`'failed'`、または `'unknown'`。 | [`JobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status#jobstatus) |
| `jobs[].error`  | ジョブが失敗した場合のエラー詳細。                                  | `{ message: string }`                                                                                |

## 例 [#examples]

ジョブ ID を直接ポーリングする：

```typescript
const result = await gt.awaitJobs(['job-123', 'job-456']);
```

[`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) の結果をポーリングします。

```typescript title="index.ts"
import { GT } from 'generaltranslation';

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

// アップロードしてエンキューする
const { uploadedFiles } = await gt.uploadSourceFiles(files, {
  sourceLocale: 'en',
});

const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
  sourceLocale: 'en',
  targetLocales: ['es', 'fr', 'de'],
});

// すべてのジョブが完了するまで待機する（10秒ごとにポーリング、5分でタイムアウト）
const result = await gt.awaitJobs(enqueueResult, {
  pollingIntervalSeconds: 10,
  timeoutSeconds: 300,
});

if (!result.complete) {
  console.warn('Some jobs did not finish in time');
}

// 個別の結果を確認する
for (const job of result.jobs) {
  if (job.status === 'completed') {
    console.log(`Job ${job.jobId} succeeded`);
  } else if (job.status === 'failed') {
    console.error(`Job ${job.jobId} failed: ${job.error?.message}`);
  }
}
```

## メモ [#notes]

* API で見つからないジョブは、`'unknown'` ステータスとして扱われます。
* 空のエンキュー結果またはジョブ ID 配列は、即座に `{ complete: true, jobs: [] }` で解決されます。
* タイムアウトはベストエフォートの上限であり、メソッドは現在のポーリングを完了してから解決されます。

## Sitemap

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