From 795be6996f346295abcda95fa3335f652e984956 Mon Sep 17 00:00:00 2001 From: you Date: Sat, 21 Mar 2026 19:53:02 +0000 Subject: [PATCH] perf: 200ms gap between pre-warm requests to drain client queue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setImmediate wasn't enough — each analytics computation blocks for 200-400ms synchronously. Adding a 200ms setTimeout between pre-warm requests gives pending client requests a window to complete between the heavy computations. --- server.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server.js b/server.js index cc9610c..a64b5ca 100644 --- a/server.js +++ b/server.js @@ -3008,8 +3008,9 @@ server.listen(listenPort, () => { if (isHttps) requestOptions.rejectUnauthorized = false; warmClient.get(requestOptions, (res) => { res.resume(); - res.on('end', () => setImmediate(warmNext)); // yield to event loop between warm requests - }).on('error', () => setImmediate(warmNext)); + // 200ms gap between warm requests — lets pending client requests drain + res.on('end', () => setTimeout(warmNext, 200)); + }).on('error', () => setTimeout(warmNext, 200)); }; // Stagger: warm analytics after subpaths are done (sequential to avoid blocking) warmNext();