From efb79fe1341d9fdcdc7ebec11c9b50aae0f3eb1a Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 30 Jun 2024 13:09:00 +0200 Subject: [PATCH] fix: improve runs page performance when minTs is defined --- backend/windmill-api/openapi.yaml | 1 + frontend/src/lib/components/runs/JobLoader.svelte | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 0511c895b9..d8d1225bcc 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -8373,6 +8373,7 @@ paths: - $ref: "#/components/parameters/Running" - $ref: "#/components/parameters/ScheduledForBeforeNow" - $ref: "#/components/parameters/CreatedOrStartedAfter" + - $ref: "#/components/parameters/CreatedOrStartedAfterCompletedJob" - $ref: "#/components/parameters/JobKinds" - $ref: "#/components/parameters/ArgsFilter" - $ref: "#/components/parameters/Tag" diff --git a/frontend/src/lib/components/runs/JobLoader.svelte b/frontend/src/lib/components/runs/JobLoader.svelte index f645a7da88..35694fff24 100644 --- a/frontend/src/lib/components/runs/JobLoader.svelte +++ b/frontend/src/lib/components/runs/JobLoader.svelte @@ -140,7 +140,8 @@ async function fetchExtendedJobs( concurrencyKey: string | null, startedBefore: string | undefined, - startedAfter: string | undefined + startedAfter: string | undefined, + startedAfterCompletedJobs: string | undefined ): Promise { return ConcurrencyGroupsService.listExtendedJobs({ rowLimit: 1000, @@ -148,6 +149,7 @@ workspace: $workspaceStore!, createdOrStartedBefore: startedBefore, createdOrStartedAfter: startedAfter, + createdOrStartedAfterCompletedJobs: startedAfterCompletedJobs, schedulePath, scriptPathExact: path === null || path === '' ? undefined : path, createdBy: user === null || user === '' ? undefined : user, @@ -203,7 +205,7 @@ jobs = sortMinDate(minTs, newJobs) externalJobs = [] } else { - extendedJobs = await fetchExtendedJobs(concurrencyKey, maxTs, undefined) + extendedJobs = await fetchExtendedJobs(concurrencyKey, maxTs, undefined, minTs) const newJobs = extendedJobs.jobs const newExternalJobs = extendedJobs.obscured_jobs @@ -291,7 +293,7 @@ newJobs = await fetchJobs(maxTs, minTs ?? ts, undefined) } else { // Obscured jobs have no ids, so we have to do the full request - extendedJobs = await fetchExtendedJobs(concurrencyKey, maxTs, undefined) + extendedJobs = await fetchExtendedJobs(concurrencyKey, maxTs, undefined, minTs ?? ts) externalJobs = computeExternalJobs(extendedJobs.obscured_jobs) // Filter on minTs here and not in the backend