Skip to content

Commit cc666f9

Browse files
committed
refactor: improove jobs handling
1 parent e8d70db commit cc666f9

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

custom/imageGenerator.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ async function generateImages() {
370370
const jobId = resp.jobId;
371371
let jobStatus = null;
372372
let jobResponse = null;
373-
while (jobStatus !== 'completed' && jobStatus !== 'failed') {
373+
while (jobStatus === 'in_progress') {
374374
jobResponse = await callAdminForthApi({
375375
path: `/plugin/${props.meta.pluginInstanceId}/get-image-generation-job-status`,
376376
method: 'POST',
@@ -384,6 +384,9 @@ async function generateImages() {
384384
if (jobStatus === 'failed') {
385385
error = jobResponse?.job?.error || $t('Image generation job failed');
386386
}
387+
if (jobStatus === 'timeout') {
388+
error = jobResponse?.job?.error || $t('Image generation job timeout');
389+
}
387390
await new Promise((resolve) => setTimeout(resolve, 2000));
388391
}
389392

index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,9 @@ export default class UploadPlugin extends AdminForthPlugin {
425425
const jobId = randomUUID();
426426
jobs.set(jobId, { status: "in_progress" });
427427

428-
setTimeout(async () => await this.generateImages(jobId, prompt, recordId, adminUser, headers), 100);
429-
setTimeout(() => jobs.delete(jobId), 300_000);
428+
this.generateImages(jobId, prompt, recordId, adminUser, headers);
429+
setTimeout(() => jobs.delete(jobId), 1_800_000);
430+
setTimeout(() => {jobs.set(jobId, { status: "timeout" });}, 300_000);
430431

431432
return { ok: true, jobId };
432433
}

0 commit comments

Comments
 (0)