From dbef4f6e212f764c32557836c5bd95fd0eebed4d Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Tue, 15 Apr 2025 11:15:06 +0200 Subject: [PATCH] backend: Add CRON_JOB_MIN_LOCK_TTL to internal config and use it in task scheduler --- backend/src/config/internal-config.ts | 1 + backend/src/services/task-scheduler.service.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/config/internal-config.ts b/backend/src/config/internal-config.ts index be2d846..6a841a1 100644 --- a/backend/src/config/internal-config.ts +++ b/backend/src/config/internal-config.ts @@ -28,6 +28,7 @@ const INTERNAL_CONFIG = { RECORDING_STARTED_TIMEOUT: '30s' as StringValue, // Timeout for recording start RECORDING_LOCK_GC_INTERVAL: '30m' as StringValue, // Garbage collection interval for recording locks + CRON_JOB_MIN_LOCK_TTL: '59s' as StringValue, // Minimum TTL for cron job locks // Additional intervals MIN_FUTURE_TIME_FOR_ROOM_AUTODELETION_DATE: '1h' as StringValue }; diff --git a/backend/src/services/task-scheduler.service.ts b/backend/src/services/task-scheduler.service.ts index 525decf..db56953 100644 --- a/backend/src/services/task-scheduler.service.ts +++ b/backend/src/services/task-scheduler.service.ts @@ -5,6 +5,7 @@ import { CronJob } from 'cron'; import { MutexService } from './mutex.service.js'; import { MeetLock } from '../helpers/redis.helper.js'; import ms from 'ms'; +import INTERNAL_CONFIG from '../config/internal-config.js'; export type TaskType = 'cron' | 'timeout'; @@ -72,7 +73,7 @@ export class TaskSchedulerService { if (type === 'cron') { this.logger.debug(`Scheduling cron task "${name}" with schedule "${scheduleOrDelay}"`); const cronExpression = this.msStringToCronExpression(scheduleOrDelay); - const lockDuration = Math.max(ms(scheduleOrDelay) - ms('1m'), ms('59s')); + const lockDuration = Math.max(ms(scheduleOrDelay) - ms('1m'), ms(INTERNAL_CONFIG.CRON_JOB_MIN_LOCK_TTL)); const job = new CronJob(cronExpression, async () => { try {