From b1583f192543e6ceb8c3258779af6160ae60897f Mon Sep 17 00:00:00 2001 From: Prithvish Baidya Date: Fri, 10 Oct 2025 01:31:35 +0530 Subject: [PATCH] feat: add QUEUE_JOB_RETENTION_AGE_SECONDS to environment configuration Introduced a new environment variable QUEUE_JOB_RETENTION_AGE_SECONDS to define the age (in seconds) after which completed or failed jobs are eligible for removal. Updated job options to utilize this variable for job retention settings. --- src/shared/utils/env.ts | 3 +++ src/worker/queues/queues.ts | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/shared/utils/env.ts b/src/shared/utils/env.ts index 85aaf3b9c..3bbbe593d 100644 --- a/src/shared/utils/env.ts +++ b/src/shared/utils/env.ts @@ -86,6 +86,8 @@ export const env = createEnv({ QUEUE_FAIL_HISTORY_COUNT: z.coerce.number().default(10_000), // Sets the number of recent nonces to map to queue IDs. NONCE_MAP_COUNT: z.coerce.number().default(10_000), + // Sets the age (in seconds) after which completed or failed jobs are eligible for removal. Default: 7 days. + QUEUE_JOB_RETENTION_AGE_SECONDS: z.coerce.number().default(7 * 24 * 60 * 60), // Overrides the cron schedule for contract subscription jobs. CONTRACT_SUBSCRIPTION_CRON_SCHEDULE_OVERRIDE: z.string().optional(), @@ -151,6 +153,7 @@ export const env = createEnv({ DD_TRACER_ACTIVATED: process.env.DD_TRACER_ACTIVATED, QUEUE_COMPLETE_HISTORY_COUNT: process.env.QUEUE_COMPLETE_HISTORY_COUNT, QUEUE_FAIL_HISTORY_COUNT: process.env.QUEUE_FAIL_HISTORY_COUNT, + QUEUE_JOB_RETENTION_AGE_SECONDS: process.env.QUEUE_JOB_RETENTION_AGE_SECONDS, NONCE_MAP_COUNT: process.env.NONCE_MAP_COUNT, CONTRACT_SUBSCRIPTION_CRON_SCHEDULE_OVERRIDE: process.env.CONTRACT_SUBSCRIPTION_CRON_SCHEDULE_OVERRIDE, diff --git a/src/worker/queues/queues.ts b/src/worker/queues/queues.ts index 6331d3a8d..3c783e91e 100644 --- a/src/worker/queues/queues.ts +++ b/src/worker/queues/queues.ts @@ -6,11 +6,11 @@ export const defaultJobOptions: JobsOptions = { // Does not retry by default. Queues must explicitly define their own retry count and backoff behavior. attempts: 0, removeOnComplete: { - age: 7 * 24 * 60 * 60, + age: env.QUEUE_JOB_RETENTION_AGE_SECONDS, count: env.QUEUE_COMPLETE_HISTORY_COUNT, }, removeOnFail: { - age: 7 * 24 * 60 * 60, + age: env.QUEUE_JOB_RETENTION_AGE_SECONDS, count: env.QUEUE_FAIL_HISTORY_COUNT, }, };