Skip to content

Commit 5eb30d0

Browse files
authored
Improve worker deployment queries (#1616)
* workerDeployment change findUnique to findFirst * Changed the worker deployment queries to only select what they need, some of the columns are huge * Only get the bare minimum data for tasks too
1 parent 719ae83 commit 5eb30d0

File tree

2 files changed

+62
-16
lines changed

2 files changed

+62
-16
lines changed

apps/webapp/app/presenters/v3/TestTaskPresenter.server.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { BackgroundWorkerTask, RuntimeEnvironmentType, TaskRunStatus } from "@tr
33
import { PrismaClient, prisma, sqlDatabaseSchema } from "~/db.server";
44
import { getTimezones } from "~/utils/timezones.server";
55
import { getUsername } from "~/utils/username";
6-
import { findCurrentWorkerDeployment } from "~/v3/models/workerDeployment.server";
6+
import {
7+
BackgroundWorkerTaskSlim,
8+
findCurrentWorkerDeployment,
9+
} from "~/v3/models/workerDeployment.server";
710

811
type TestTaskOptions = {
912
userId: string;
@@ -113,7 +116,7 @@ export class TestTaskPresenter {
113116
},
114117
});
115118

116-
let task: BackgroundWorkerTask | null = null;
119+
let task: BackgroundWorkerTaskSlim | null = null;
117120
if (environment.type !== "DEVELOPMENT") {
118121
const deployment = await findCurrentWorkerDeployment(environment.id);
119122
if (deployment) {

apps/webapp/app/v3/models/workerDeployment.server.ts

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,44 @@ export type CurrentWorkerDeployment = Prettify<
88
NonNullable<Awaited<ReturnType<typeof findCurrentWorkerDeployment>>>
99
>;
1010

11+
export type BackgroundWorkerTaskSlim = Prisma.BackgroundWorkerTaskGetPayload<{
12+
select: {
13+
id: true;
14+
friendlyId: true;
15+
slug: true;
16+
filePath: true;
17+
exportName: true;
18+
triggerSource: true;
19+
machineConfig: true;
20+
maxDurationInSeconds: true;
21+
};
22+
}>;
23+
1124
type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{
12-
include: {
25+
select: {
26+
id: true;
27+
imageReference: true;
28+
version: true;
1329
worker: {
14-
include: {
15-
tasks: true;
30+
select: {
31+
id: true;
32+
friendlyId: true;
33+
version: true;
34+
sdkVersion: true;
35+
cliVersion: true;
36+
supportsLazyAttempts: true;
37+
tasks: {
38+
select: {
39+
id: true;
40+
friendlyId: true;
41+
slug: true;
42+
filePath: true;
43+
exportName: true;
44+
triggerSource: true;
45+
machineConfig: true;
46+
maxDurationInSeconds: true;
47+
};
48+
};
1649
};
1750
};
1851
};
@@ -21,18 +54,25 @@ type WorkerDeploymentWithWorkerTasks = Prisma.WorkerDeploymentGetPayload<{
2154
export async function findCurrentWorkerDeployment(
2255
environmentId: string
2356
): Promise<WorkerDeploymentWithWorkerTasks | undefined> {
24-
const promotion = await prisma.workerDeploymentPromotion.findUnique({
57+
const promotion = await prisma.workerDeploymentPromotion.findFirst({
2558
where: {
26-
environmentId_label: {
27-
environmentId,
28-
label: CURRENT_DEPLOYMENT_LABEL,
29-
},
59+
environmentId,
60+
label: CURRENT_DEPLOYMENT_LABEL,
3061
},
31-
include: {
62+
select: {
3263
deployment: {
33-
include: {
64+
select: {
65+
id: true,
66+
imageReference: true,
67+
version: true,
3468
worker: {
35-
include: {
69+
select: {
70+
id: true,
71+
friendlyId: true,
72+
version: true,
73+
sdkVersion: true,
74+
cliVersion: true,
75+
supportsLazyAttempts: true,
3676
tasks: true,
3777
},
3878
},
@@ -46,7 +86,10 @@ export async function findCurrentWorkerDeployment(
4686

4787
export async function findCurrentWorkerFromEnvironment(
4888
environment: Pick<AuthenticatedEnvironment, "id" | "type">
49-
): Promise<BackgroundWorker | null> {
89+
): Promise<Pick<
90+
BackgroundWorker,
91+
"id" | "friendlyId" | "version" | "sdkVersion" | "cliVersion" | "supportsLazyAttempts"
92+
> | null> {
5093
if (environment.type === "DEVELOPMENT") {
5194
const latestDevWorker = await prisma.backgroundWorker.findFirst({
5295
where: {
@@ -66,7 +109,7 @@ export async function findCurrentWorkerFromEnvironment(
66109
export async function getWorkerDeploymentFromWorker(
67110
workerId: string
68111
): Promise<WorkerDeploymentWithWorkerTasks | undefined> {
69-
const worker = await prisma.backgroundWorker.findUnique({
112+
const worker = await prisma.backgroundWorker.findFirst({
70113
where: {
71114
id: workerId,
72115
},
@@ -91,7 +134,7 @@ export async function getWorkerDeploymentFromWorker(
91134
export async function getWorkerDeploymentFromWorkerTask(
92135
workerTaskId: string
93136
): Promise<WorkerDeploymentWithWorkerTasks | undefined> {
94-
const workerTask = await prisma.backgroundWorkerTask.findUnique({
137+
const workerTask = await prisma.backgroundWorkerTask.findFirst({
95138
where: {
96139
id: workerTaskId,
97140
},

0 commit comments

Comments
 (0)