From 5d0fff45223e2caf3e7f7e21a379cd3265362890 Mon Sep 17 00:00:00 2001 From: Bruno Quaresma Date: Fri, 6 Jan 2023 14:39:22 +0000 Subject: [PATCH] fix: Too many requests during watching template version --- site/src/util/delay.ts | 4 ++++ site/src/xServices/createTemplate/createTemplateXService.ts | 6 ++++++ 2 files changed, 10 insertions(+) create mode 100644 site/src/util/delay.ts diff --git a/site/src/util/delay.ts b/site/src/util/delay.ts new file mode 100644 index 0000000000000..cdbcf00bdfa91 --- /dev/null +++ b/site/src/util/delay.ts @@ -0,0 +1,4 @@ +export const delay = (ms: number): Promise => + new Promise((res) => { + setTimeout(res, ms) + }) diff --git a/site/src/xServices/createTemplate/createTemplateXService.ts b/site/src/xServices/createTemplate/createTemplateXService.ts index 73490ec17598d..c533715371602 100644 --- a/site/src/xServices/createTemplate/createTemplateXService.ts +++ b/site/src/xServices/createTemplate/createTemplateXService.ts @@ -17,6 +17,7 @@ import { UploadResponse, } from "api/typesGenerated" import { displayError } from "components/GlobalSnackbar/utils" +import { delay } from "util/delay" import { assign, createMachine } from "xstate" // for creating a new template: @@ -345,6 +346,11 @@ export const createTemplateMachine = while (["pending", "running"].includes(status)) { version = await getTemplateVersion(version.id) status = version.job.status + // Delay the verification in two seconds to not overload the server + // with too many requests Maybe at some point we could have a + // websocket for template version Also, preferred doing this way to + // avoid a new state since we don't need to reflect it on the UI + await delay(2_000) } return version },