diff --git a/packages/tasks/src/drivers/bullmq.ts b/packages/tasks/src/drivers/bullmq.ts index dbf2f76e..28dbe3bf 100644 --- a/packages/tasks/src/drivers/bullmq.ts +++ b/packages/tasks/src/drivers/bullmq.ts @@ -80,9 +80,8 @@ export class BullMQDriver implements TaskDriver { * @returns A unique job identifier */ public async create(task: TaskData): Promise { - const jobId = crypto.randomUUID(); + const taskId = `${task.name}-${typeof task.schedule === 'string' ? 'scheduled' : 'delayed'}`; const job = await this.queue.add(task.name, task.data, { - jobId, ...(typeof task.schedule === 'string' ? { repeat: { @@ -97,9 +96,14 @@ export class BullMQDriver implements TaskDriver { ? task.schedule.getTime() : task.schedule) - Date.now(), }), + jobId: taskId, + deduplication: { + id: taskId, + replace: true, + }, }); - return job.id ?? jobId; + return job.id ?? taskId; } /**