# General Translation Platform: awaitJobs URL: https://generaltranslation.com/ja/docs/platform/core/reference/gt-class-methods/translation/await-jobs.mdx --- title: awaitJobs 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) の結果を `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( enqueueResult: EnqueueFilesResult, options?: AwaitJobsOptions ): Promise ``` *警告: `complete: true` は、すべてのジョブが終端状態に達したことを意味します。これは、すべてのジョブが成功したことを意味する**ものではありません**。成功しているかどうかは、各 `job.status` を確認してください。* ## 仕組み [#how-it-works] * **自動ポーリング。** 手動のポーリングループは不要です。`while` ループ内で `checkJobStatus` を自分で呼び出す必要はありません。 * **終端状態。** すべてのジョブが `completed`、`failed`、または `unknown` になると解決されます。API が見つけられないジョブは `'unknown'` として扱われます。 * **ベストエフォートのタイムアウト。** タイムアウトはベストエフォートの上限です。メソッドは現在のポーリングを完了してから解決されます。 * **空の入力。** `enqueueResult` にジョブが含まれていない場合、メソッドは即座に `{ complete: true, jobs: [] }` を返して解決されます。 ## パラメータ [#parameters] | パラメータ | 説明 | 型 | 任意 | デフォルト | | ---------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------ | --- | ----- | | [`enqueueResult`](#enqueue-result) | `enqueueFiles` が返す結果オブジェクト。 | [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) | いいえ | — | | [`options`](#options) | ポーリング設定。 | `AwaitJobsOptions` | はい | — | ### `enqueueResult` [#enqueue-result] **型** [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) · **必須** [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) が返す結果です。`jobData` には、ポーリング対象のジョブを特定する情報が含まれます。 ### `options` [#options] **Type** `AwaitJobsOptions` · **任意** ポーリングの設定: | Field | 説明 | Type | 任意 | デフォルト | | ------------------------ | -------------------------- | -------- | -- | ----------- | | `pollingIntervalSeconds` | ステータスの更新を確認するポーリングの間隔。 | `number` | はい | `5` | | `timeoutSeconds` | 現在のステータスを返して完了するまでの最大待機時間。 | `number` | はい | `600` (10分) | ## 戻り値 [#returns] **型** `Promise` 全体フラグと各ジョブの最終ステータスを含む `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] ```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'` ステータスとして扱われます。 * `enqueueResult` にジョブが含まれていない場合、メソッドは即座に `{ complete: true, jobs: [] }` で解決されます。 * タイムアウトはあくまで目安の上限であり、メソッドは現在のポーリングを完了してから解決されます。