diff --git a/packages/server/src/concurrencyGuard.test.ts b/packages/server/src/concurrencyGuard.test.ts new file mode 100644 index 00000000..6427df31 --- /dev/null +++ b/packages/server/src/concurrencyGuard.test.ts @@ -0,0 +1,18 @@ +import { describe, it, expect, afterEach } from "vitest"; +import { getMaxConcurrentTasks } from "./concurrencyGuard.js"; + +describe("concurrencyGuard default cap", () => { + afterEach(() => { + delete process.env.MAX_CONCURRENT_TASKS; + }); + + it("defaults to 5 when MAX_CONCURRENT_TASKS is unset", () => { + delete process.env.MAX_CONCURRENT_TASKS; + expect(getMaxConcurrentTasks()).toBe(5); + }); + + it("honors MAX_CONCURRENT_TASKS env override", () => { + process.env.MAX_CONCURRENT_TASKS = "12"; + expect(getMaxConcurrentTasks()).toBe(12); + }); +}); diff --git a/packages/server/src/concurrencyGuard.ts b/packages/server/src/concurrencyGuard.ts index b744aed1..50c8d79c 100644 --- a/packages/server/src/concurrencyGuard.ts +++ b/packages/server/src/concurrencyGuard.ts @@ -1,4 +1,4 @@ -const getMax = () => Number(process.env.MAX_CONCURRENT_TASKS ?? 3); +const getMax = () => Number(process.env.MAX_CONCURRENT_TASKS ?? 5); let activeTasks = 0;