From c95c68cb5a937f3fd633b8c4a2e94369b491f151 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Wed, 15 Jan 2025 19:27:47 +0000 Subject: [PATCH 1/3] workerDeployment change findUnique to findFirst --- apps/webapp/app/v3/models/workerDeployment.server.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/webapp/app/v3/models/workerDeployment.server.ts b/apps/webapp/app/v3/models/workerDeployment.server.ts index 49595dab7e..176e956b40 100644 --- a/apps/webapp/app/v3/models/workerDeployment.server.ts +++ b/apps/webapp/app/v3/models/workerDeployment.server.ts @@ -21,12 +21,10 @@ type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{ export async function findCurrentWorkerDeployment( environmentId: string ): Promise { - const promotion = await prisma.workerDeploymentPromotion.findUnique({ + const promotion = await prisma.workerDeploymentPromotion.findFirst({ where: { - environmentId_label: { - environmentId, - label: CURRENT_DEPLOYMENT_LABEL, - }, + environmentId, + label: CURRENT_DEPLOYMENT_LABEL, }, include: { deployment: { @@ -66,7 +64,7 @@ export async function findCurrentWorkerFromEnvironment( export async function getWorkerDeploymentFromWorker( workerId: string ): Promise { - const worker = await prisma.backgroundWorker.findUnique({ + const worker = await prisma.backgroundWorker.findFirst({ where: { id: workerId, }, @@ -91,7 +89,7 @@ export async function getWorkerDeploymentFromWorker( export async function getWorkerDeploymentFromWorkerTask( workerTaskId: string ): Promise { - const workerTask = await prisma.backgroundWorkerTask.findUnique({ + const workerTask = await prisma.backgroundWorkerTask.findFirst({ where: { id: workerTaskId, }, From 74692a23c43ab959d7ed83831cfc74189e77b717 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Wed, 15 Jan 2025 20:07:22 +0000 Subject: [PATCH 2/3] Changed the worker deployment queries to only select what they need, some of the columns are huge --- .../app/v3/models/workerDeployment.server.ts | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/apps/webapp/app/v3/models/workerDeployment.server.ts b/apps/webapp/app/v3/models/workerDeployment.server.ts index 176e956b40..7df39304dd 100644 --- a/apps/webapp/app/v3/models/workerDeployment.server.ts +++ b/apps/webapp/app/v3/models/workerDeployment.server.ts @@ -9,9 +9,18 @@ export type CurrentWorkerDeployment = Prettify< >; type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{ - include: { + select: { + id: true; + imageReference: true; + version: true; worker: { - include: { + select: { + id: true; + friendlyId: true; + version: true; + sdkVersion: true; + cliVersion: true; + supportsLazyAttempts: true; tasks: true; }; }; @@ -26,11 +35,20 @@ export async function findCurrentWorkerDeployment( environmentId, label: CURRENT_DEPLOYMENT_LABEL, }, - include: { + select: { deployment: { - include: { + select: { + id: true, + imageReference: true, + version: true, worker: { - include: { + select: { + id: true, + friendlyId: true, + version: true, + sdkVersion: true, + cliVersion: true, + supportsLazyAttempts: true, tasks: true, }, }, @@ -44,7 +62,10 @@ export async function findCurrentWorkerDeployment( export async function findCurrentWorkerFromEnvironment( environment: Pick -): Promise { +): Promise | null> { if (environment.type === "DEVELOPMENT") { const latestDevWorker = await prisma.backgroundWorker.findFirst({ where: { From 60670881f8c7edcb653382331a4857d6402c43ed Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Wed, 15 Jan 2025 20:27:17 +0000 Subject: [PATCH 3/3] Only get the bare minimum data for tasks too --- .../presenters/v3/TestTaskPresenter.server.ts | 7 +++-- .../app/v3/models/workerDeployment.server.ts | 26 ++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts b/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts index 779b904263..46e2c1a37b 100644 --- a/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts +++ b/apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts @@ -3,7 +3,10 @@ import { BackgroundWorkerTask, RuntimeEnvironmentType, TaskRunStatus } from "@tr import { PrismaClient, prisma, sqlDatabaseSchema } from "~/db.server"; import { getTimezones } from "~/utils/timezones.server"; import { getUsername } from "~/utils/username"; -import { findCurrentWorkerDeployment } from "~/v3/models/workerDeployment.server"; +import { + BackgroundWorkerTaskSlim, + findCurrentWorkerDeployment, +} from "~/v3/models/workerDeployment.server"; type TestTaskOptions = { userId: string; @@ -113,7 +116,7 @@ export class TestTaskPresenter { }, }); - let task: BackgroundWorkerTask | null = null; + let task: BackgroundWorkerTaskSlim | null = null; if (environment.type !== "DEVELOPMENT") { const deployment = await findCurrentWorkerDeployment(environment.id); if (deployment) { diff --git a/apps/webapp/app/v3/models/workerDeployment.server.ts b/apps/webapp/app/v3/models/workerDeployment.server.ts index 7df39304dd..78d6304baa 100644 --- a/apps/webapp/app/v3/models/workerDeployment.server.ts +++ b/apps/webapp/app/v3/models/workerDeployment.server.ts @@ -8,6 +8,19 @@ export type CurrentWorkerDeployment = Prettify< NonNullable>> >; +export type BackgroundWorkerTaskSlim = Prisma.BackgroundWorkerTaskGetPayload<{ + select: { + id: true; + friendlyId: true; + slug: true; + filePath: true; + exportName: true; + triggerSource: true; + machineConfig: true; + maxDurationInSeconds: true; + }; +}>; + type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{ select: { id: true; @@ -21,7 +34,18 @@ type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{ sdkVersion: true; cliVersion: true; supportsLazyAttempts: true; - tasks: true; + tasks: { + select: { + id: true; + friendlyId: true; + slug: true; + filePath: true; + exportName: true; + triggerSource: true; + machineConfig: true; + maxDurationInSeconds: true; + }; + }; }; }; };