From bf25a65d8ede230f1f4d415d25ba668652ee5495 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 29 May 2026 10:28:01 -0700 Subject: [PATCH] add configurable queue selection to service config, default to in memory --- server/src/config/services.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/server/src/config/services.ts b/server/src/config/services.ts index 4eb6c1081..04966d6e2 100644 --- a/server/src/config/services.ts +++ b/server/src/config/services.ts @@ -7,8 +7,9 @@ import { EmailService, BufferService, GlobalPingService, + LessSimpleQueue, SuperSimpleQueue, - SuperSimpleQueueHelper, + QueueHelper, NotificationsService, TagsService, StatusService, @@ -37,7 +38,7 @@ import { INetworkService, IEmailService, IBufferService, - ISuperSimpleQueue, + IJobQueue, INotificationsService, ITagsService, IStatusService, @@ -131,7 +132,7 @@ export type InitializedServices = { emailService: IEmailService; bufferService: IBufferService; statusService: IStatusService; - jobQueue: ISuperSimpleQueue; + jobQueue: IJobQueue; userService: IUserService; checkService: ICheckService; geoChecksService: IGeoChecksService; @@ -325,7 +326,7 @@ export const initializeServices = async ({ const tagsService = new TagsService(tagsRepository, monitorsRepository); - const superSimpleQueueHelper = new SuperSimpleQueueHelper( + const queueHelper = new QueueHelper( logger, networkService, statusService, @@ -344,7 +345,14 @@ export const initializeServices = async ({ geoChecksRepository ); - const superSimpleQueue = await SuperSimpleQueue.create(logger, superSimpleQueueHelper, monitorsRepository); + let jobQueue: IJobQueue; + switch (envSettings.queueType) { + case "lessSimpleQueue": + jobQueue = await LessSimpleQueue.create(logger, queueHelper, monitorsRepository, envSettings); + break; + default: + jobQueue = await SuperSimpleQueue.create(logger, queueHelper, monitorsRepository); + } // Business services const userService = new UserService({ @@ -353,7 +361,7 @@ export const initializeServices = async ({ settingsService, logger, jwt, - jobQueue: superSimpleQueue, + jobQueue, monitorsRepository, usersRepository, invitesRepository, @@ -373,7 +381,7 @@ export const initializeServices = async ({ maintenanceWindowsRepository, }); const monitorService = new MonitorService({ - jobQueue: superSimpleQueue, + jobQueue, logger, games, monitorsRepository, @@ -393,7 +401,7 @@ export const initializeServices = async ({ emailService, bufferService, statusService, - jobQueue: superSimpleQueue, + jobQueue, userService, checkService, geoChecksService,