2fa84ea124
## Summary Adds a `RUN_ENGINE_DEQUEUE_DISABLED_WORKER_QUEUES` setting that refuses worker dequeue requests for the listed worker queues (or base regions), so their runs stay queued instead of being handed to workers that can't run them. Blocked dequeues are counted via a `run_engine.dequeue.blocked` OTel counter (labeled by `worker_queue` and `region`).
45 lines
1.9 KiB
TypeScript
45 lines
1.9 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
matchesDisabledWorkerQueue,
|
|
parseDisabledWorkerQueues,
|
|
} from "~/runEngine/concerns/workerQueueSplit.server";
|
|
|
|
describe("parseDisabledWorkerQueues", () => {
|
|
it("returns an empty set for undefined or empty input", () => {
|
|
expect(parseDisabledWorkerQueues(undefined).size).toBe(0);
|
|
expect(parseDisabledWorkerQueues("").size).toBe(0);
|
|
expect(parseDisabledWorkerQueues(" , ,").size).toBe(0);
|
|
});
|
|
|
|
it("splits, trims, and drops empties", () => {
|
|
const parsed = parseDisabledWorkerQueues(" eu-central-1 , us-east-1:scheduled ,, ");
|
|
expect([...parsed]).toEqual(["eu-central-1", "us-east-1:scheduled"]);
|
|
});
|
|
});
|
|
|
|
describe("matchesDisabledWorkerQueue", () => {
|
|
it("never matches when the disabled set is empty", () => {
|
|
const empty = parseDisabledWorkerQueues(undefined);
|
|
expect(matchesDisabledWorkerQueue("eu-central-1", empty)).toBe(false);
|
|
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", empty)).toBe(false);
|
|
});
|
|
|
|
it("gates the base region and its scheduled split when the base region is listed", () => {
|
|
const disabled = parseDisabledWorkerQueues("eu-central-1");
|
|
expect(matchesDisabledWorkerQueue("eu-central-1", disabled)).toBe(true);
|
|
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", disabled)).toBe(true);
|
|
});
|
|
|
|
it("leaves other regions alone", () => {
|
|
const disabled = parseDisabledWorkerQueues("eu-central-1");
|
|
expect(matchesDisabledWorkerQueue("us-east-1", disabled)).toBe(false);
|
|
expect(matchesDisabledWorkerQueue("us-east-1:scheduled", disabled)).toBe(false);
|
|
});
|
|
|
|
it("gates only the scheduled split when a full worker queue is listed", () => {
|
|
const disabled = parseDisabledWorkerQueues("eu-central-1:scheduled");
|
|
expect(matchesDisabledWorkerQueue("eu-central-1:scheduled", disabled)).toBe(true);
|
|
expect(matchesDisabledWorkerQueue("eu-central-1", disabled)).toBe(false);
|
|
});
|
|
});
|