# generaltranslation: General Translation Core SDK: awaitJobs URL: https://generaltranslation.com/fr/docs/core/class/methods/translation/await-jobs.mdx --- title: awaitJobs description: Référence d’API de la méthode awaitJobs pour interroger l’état des tâches de traduction et attendre leur fin --- ## Vue d’ensemble La méthode `awaitJobs` interroge l’état des tâches de traduction et se résout une fois que toutes les tâches ont atteint un état terminal (`completed`, `failed` ou `unknown`) ou qu’un délai d’expiration est atteint. Il s’agit d’un wrapper utilitaire autour de [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) qui gère automatiquement l’interrogation. ```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'); } ``` `complete: true` signifie que toutes les tâches ont atteint un état final — cela **ne** veut pas dire que toutes les tâches ont réussi. Vérifiez les valeurs de `job.status` de chaque tâche pour confirmer la réussite. ## Référence ### Paramètres | Nom | Type | Description | | --------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | `enqueueResult` | [`EnqueueFilesResult`](/docs/core/types/enqueue-files-options) | L'objet de résultat renvoyé par [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) | | `options?` | `AwaitJobsOptions` | Configuration de polling facultative | #### AwaitJobsOptions | Nom | Type | Par défaut | Description | | ------------------------- | -------- | -------------- | --------------------------------------------------------------------- | | `pollingIntervalSeconds?` | `number` | `5` | Fréquence des interrogations pour vérifier les mises à jour de statut | | `timeoutSeconds?` | `number` | `600` (10 min) | Temps d’attente maximal avant de renvoyer les statuts actuels | ### Retourne `Promise` ```typescript type AwaitJobsResult = { /** Indique si tous les jobs ont atteint un état terminal (pas nécessairement un succès). */ complete: boolean; jobs: JobResult[]; }; type JobResult = { jobId: string; status: JobStatus; error?: { message: string }; }; ``` | Propriété | Type | Description | | --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `complete` | `boolean` | `true` si aucune tâche n’est encore en cours ; `false` si le délai d’expiration est atteint | | `jobs` | `JobResult[]` | État final de chaque tâche | | `jobs[].jobId` | `string` | Identifiant de la tâche | | `jobs[].status` | [`JobStatus`](/docs/core/class/methods/translation/check-job-status#jobstatus) | État final : `'completed'`, `'failed'` ou `'unknown'` | | `jobs[].error?` | `{ message: string }` | Détails de l’erreur si la tâche a échoué | *** ## Exemple ### Mettre en file d’attente, puis attendre les traductions ```typescript title="index.ts" copy import { GT } from 'generaltranslation'; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // Upload et mise en file d'attente const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); const enqueueResult = await gt.enqueueFiles(uploadedFiles, { sourceLocale: 'en', targetLocales: ['es', 'fr', 'de'], }); // Attendre la fin de tous les jobs (interrogation toutes les 10 s, délai d'expiration après 5 min) const result = await gt.awaitJobs(enqueueResult, { pollingIntervalSeconds: 10, timeoutSeconds: 300, }); if (!result.complete) { console.warn('Certains jobs ne se sont pas terminés dans les délais'); } // Vérifier les résultats individuels for (const job of result.jobs) { if (job.status === 'completed') { console.log(`Job ${job.jobId} réussi`); } else if (job.status === 'failed') { console.error(`Job ${job.jobId} échoué : ${job.error?.message}`); } } ``` *** ## Remarques * Remplace les boucles d’interrogation manuelles — inutile d’appeler vous-même `checkJobStatus` dans une boucle `while` * Les tâches que l’API ne trouve pas sont traitées avec le statut `'unknown'` * Si `enqueueResult` ne contient aucune tâche, la méthode renvoie immédiatement `{ complete: true, jobs: [] }` * Le délai d’expiration est une limite appliquée au mieux — la méthode termine d’abord l’interrogation en cours avant de renvoyer le résultat ## Étapes suivantes * Consultez [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) pour lancer des tâches de traduction * Consultez [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) pour vérifier manuellement l’état * Consultez [`downloadFile`](/docs/core/class/methods/translation/download-file) pour télécharger les traductions terminées