Skip to content

Commit 3f97125

Browse files
committed
Add configuration for the release concurrency queue
1 parent 6ab0405 commit 3f97125

3 files changed

Lines changed: 26 additions & 4 deletions

File tree

internal-packages/run-engine/src/engine/index.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,13 +255,16 @@ export class RunEngine {
255255
keyPrefix: `${options.queue.redis.keyPrefix}release-concurrency:`,
256256
},
257257
retry: {
258-
maxRetries: 5, // TODO: Make this configurable
258+
maxRetries: options.releaseConcurrency?.maxRetries ?? 5,
259259
backoff: {
260-
minDelay: 1000, // TODO: Make this configurable
261-
maxDelay: 10000, // TODO: Make this configurable
262-
factor: 2, // TODO: Make this configurable
260+
minDelay: options.releaseConcurrency?.backoff?.minDelay ?? 1000,
261+
maxDelay: options.releaseConcurrency?.backoff?.maxDelay ?? 10000,
262+
factor: options.releaseConcurrency?.backoff?.factor ?? 2,
263263
},
264264
},
265+
consumersCount: options.releaseConcurrency?.consumersCount ?? 1,
266+
pollInterval: options.releaseConcurrency?.pollInterval ?? 1000,
267+
batchSize: options.releaseConcurrency?.batchSize ?? 10,
265268
executor: async (descriptor, runId) => {
266269
await this.#executeReleasedConcurrencyFromQueue(descriptor, runId);
267270
},
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { containerTest } from "@internal/testcontainers";
2+
3+
vi.setConfig({ testTimeout: 60_000 });
4+
5+
describe("RunEngine Releasing Concurrency", () => {
6+
containerTest(
7+
"blocking a run with a waitpoint with releasing concurrency",
8+
async ({ prisma, redisOptions }) => {}
9+
);
10+
});

internal-packages/run-engine/src/engine/types.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ export type RunEngineOptions = {
3838
releaseConcurrency?: {
3939
maxTokensRatio?: number;
4040
redis?: Partial<RedisOptions>;
41+
maxRetries?: number;
42+
consumersCount?: number;
43+
pollInterval?: number;
44+
batchSize?: number;
45+
backoff?: {
46+
minDelay?: number; // Defaults to 1000
47+
maxDelay?: number; // Defaults to 60000
48+
factor?: number; // Defaults to 2
49+
};
4150
};
4251
};
4352

0 commit comments

Comments
 (0)