From b49177ffbfb1a7a507d71ce4aadfa447033148ef Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Wed, 29 Oct 2025 13:33:38 +0100 Subject: [PATCH] feat: enhance KOMGA_DEBUG functionality to disable request delays in debug mode and log request queue statistics --- ENV.md | 5 +++-- src/lib/services/base-api.service.ts | 5 +++++ src/lib/services/request-queue.service.ts | 8 ++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ENV.md b/ENV.md index 3dbbbd7..862ceb9 100644 --- a/ENV.md +++ b/ENV.md @@ -18,10 +18,11 @@ ADMIN_DEFAULT_PASSWORD=Admin@2025 # Cache Debug (optional - logs cache operations) # CACHE_DEBUG=true -# Komga Debug (optional - logs all requests to Komga) +# Komga Debug (optional - logs all requests to Komga and disables artificial delays) # KOMGA_DEBUG=true -# Komga Request Queue (optional - max concurrent requests to Komga, default: 2) +# Komga Request Queue (optional - max concurrent requests to Komga, default: 5) +# Augmenter à 10-20 pour du local avec des gros fichiers CBZ # KOMGA_MAX_CONCURRENT_REQUESTS=5 # Node Environment diff --git a/src/lib/services/base-api.service.ts b/src/lib/services/base-api.service.ts index 4ad76f7..be86f4d 100644 --- a/src/lib/services/base-api.service.ts +++ b/src/lib/services/base-api.service.ts @@ -180,12 +180,17 @@ export abstract class BaseApiService { const startTime = isDebug ? Date.now() : 0; if (isDebug) { + const queueStats = { + active: RequestQueueService.getActiveCount(), + queued: RequestQueueService.getQueueLength(), + }; logger.info({ url, method: options.method || 'GET', params, isImage: options.isImage, noJson: options.noJson, + queue: queueStats, }, '🔵 Komga Request'); } diff --git a/src/lib/services/request-queue.service.ts b/src/lib/services/request-queue.service.ts index c2f3752..e554ba2 100644 --- a/src/lib/services/request-queue.service.ts +++ b/src/lib/services/request-queue.service.ts @@ -76,8 +76,12 @@ class RequestQueue { try { // Délai adaptatif : plus long si la queue est pleine - const delayMs = this.queue.length > 10 ? 500 : 200; - await this.delay(delayMs); + // Désactivé en mode debug pour ne pas ralentir les tests + const isDebug = process.env.KOMGA_DEBUG === 'true'; + if (!isDebug) { + const delayMs = this.queue.length > 10 ? 500 : 200; + await this.delay(delayMs); + } const result = await request.execute(); request.resolve(result); } catch (error) {