Skip to content

Commit 48670b6

Browse files
committed
perf: use select instead of include when only ttl is needed
1 parent 7f2bd98 commit 48670b6

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

apps/webapp/app/runEngine/concerns/queues.server.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,20 @@ export class DefaultQueueManager implements QueueManager {
220220
return { queueName: overriddenQueueName ?? defaultQueueName, taskTtl: undefined };
221221
}
222222

223+
// When queue is overridden, we only need TTL from the task (no queue join needed)
224+
if (overriddenQueueName) {
225+
const task = await this.prisma.backgroundWorkerTask.findFirst({
226+
where: {
227+
workerId: worker.id,
228+
runtimeEnvironmentId: environment.id,
229+
slug: taskId,
230+
},
231+
select: { ttl: true },
232+
});
233+
234+
return { queueName: overriddenQueueName, taskTtl: task?.ttl };
235+
}
236+
223237
const task = await this.prisma.backgroundWorkerTask.findFirst({
224238
where: {
225239
workerId: worker.id,
@@ -237,7 +251,7 @@ export class DefaultQueueManager implements QueueManager {
237251
environmentId: environment.id,
238252
});
239253

240-
return { queueName: overriddenQueueName ?? defaultQueueName, taskTtl: undefined };
254+
return { queueName: defaultQueueName, taskTtl: undefined };
241255
}
242256

243257
if (!task.queue) {
@@ -247,10 +261,10 @@ export class DefaultQueueManager implements QueueManager {
247261
queueConfig: task.queueConfig,
248262
});
249263

250-
return { queueName: overriddenQueueName ?? defaultQueueName, taskTtl: task.ttl };
264+
return { queueName: defaultQueueName, taskTtl: task.ttl };
251265
}
252266

253-
return { queueName: overriddenQueueName ?? task.queue.name ?? defaultQueueName, taskTtl: task.ttl };
267+
return { queueName: task.queue.name ?? defaultQueueName, taskTtl: task.ttl };
254268
}
255269

256270
async validateQueueLimits(

0 commit comments

Comments
 (0)