From 369bc38560ab4783b4f76cbf97d07bea69dc2a5c Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 15 Aug 2024 18:48:50 +0100 Subject: [PATCH] Instead of upserting taskQueues, do a findFirst then create/update --- .../app/v3/services/triggerTask.server.ts | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/apps/webapp/app/v3/services/triggerTask.server.ts b/apps/webapp/app/v3/services/triggerTask.server.ts index 88cf557b0..b434f3471 100644 --- a/apps/webapp/app/v3/services/triggerTask.server.ts +++ b/apps/webapp/app/v3/services/triggerTask.server.ts @@ -311,28 +311,37 @@ export class TriggerTaskService extends BaseService { ? Math.max(0, body.options.queue.concurrencyLimit) : undefined; - const taskQueue = await tx.taskQueue.upsert({ + let taskQueue = await tx.taskQueue.findFirst({ where: { - runtimeEnvironmentId_name: { - runtimeEnvironmentId: environment.id, - name: queueName, - }, - }, - update: { - concurrencyLimit, - rateLimit: body.options.queue.rateLimit, - }, - create: { - friendlyId: generateFriendlyId("queue"), - name: queueName, - concurrencyLimit, runtimeEnvironmentId: environment.id, - projectId: environment.projectId, - rateLimit: body.options.queue.rateLimit, - type: "NAMED", + name: queueName, }, }); + if (taskQueue) { + taskQueue = await tx.taskQueue.update({ + where: { + id: taskQueue.id, + }, + data: { + concurrencyLimit, + rateLimit: body.options.queue.rateLimit, + }, + }); + } else { + taskQueue = await tx.taskQueue.create({ + data: { + friendlyId: generateFriendlyId("queue"), + name: queueName, + concurrencyLimit, + runtimeEnvironmentId: environment.id, + projectId: environment.projectId, + rateLimit: body.options.queue.rateLimit, + type: "NAMED", + }, + }); + } + if (typeof taskQueue.concurrencyLimit === "number") { await marqs?.updateQueueConcurrencyLimits( environment,