fix: limit history pagination to prevent 40s response times
Licence Check / Licence compatibility and copyright header verification (push) Successful in 51s
Build and Push Docker Image / build (push) Successful in 1m27s
CI / Security audit (push) Successful in 1m27s
CI / Tests & coverage (push) Successful in 1m43s

The full pagination fix (ddad80a, e772001) caused history retrieval to
fetch up to 50 pages sequentially, taking 10-40 seconds instead of ~200ms.

Changes:
- Add maxPages parameter to getHistory() with default of 1 page
- Update poller to fetch 50 records (up from 10) in a single API call
- historyFetcher retains 100 records per page for UI display

This provides 5x more history for matching than before while keeping
the fast single-request performance.

Refs: develop-merge pagination performance issue
This commit is contained in:
2026-05-20 21:44:53 +01:00
parent 7d3e6e6a47
commit d568800942
3 changed files with 10 additions and 6 deletions
+2 -2
View File
@@ -118,7 +118,7 @@ async function pollAllServices() {
return queuesByType.sonarr || [];
}) : timed('Sonarr Queue', async () => []),
shouldPollSonarr ? timed('Sonarr History', async () => {
const historyByType = await arrRetrieverRegistry.getHistoryByType({ pageSize: 10 });
const historyByType = await arrRetrieverRegistry.getHistoryByType({ pageSize: 50 });
return historyByType.sonarr || [];
}) : timed('Sonarr History', async () => []),
shouldPollRadarr ? timed('Radarr Queue', async () => {
@@ -126,7 +126,7 @@ async function pollAllServices() {
return queuesByType.radarr || [];
}) : timed('Radarr Queue', async () => []),
shouldPollRadarr ? timed('Radarr History', async () => {
const historyByType = await arrRetrieverRegistry.getHistoryByType({ pageSize: 10 });
const historyByType = await arrRetrieverRegistry.getHistoryByType({ pageSize: 50 });
return historyByType.radarr || [];
}) : timed('Radarr History', async () => []),
shouldPollRadarr ? timed('Radarr Tags', async () => {