summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-08-22 01:06:35 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-08-22 01:06:35 +0000
commit429594e6bc1069f7e7141060df3a0fd8bf63749b (patch)
treee9aa74d339a7f3fa06aa4cce70858fd0260f4177 /config
parent2352cb39d9623074192a6a1a7fec47e22ab4606b (diff)
Concurrent feed fetching with durable fetch-result tracking
Feeds are fetched with bounded concurrency (semaphore of 8) instead of strictly sequentially -- with 100+ subscriptions, one slow/stalling server no longer delays every feed queued behind it. A process-local mutex prevents the periodic and manual/alarm-triggered one-time fetches (two different WorkManager unique-work names, so its own dedup doesn't cover this) from ever running concurrently and racing writes to the same feed rows. Settings.recordFetchResult persists lastFetchAt/lastFetchNewArticles on every run, not derived from WorkInfo.State -- a PeriodicWorkRequest cycles back to ENQUEUED after every successful run and never reaches SUCCEEDED, so anything watching for that only ever saw manual fetches. ArticleListScreen surfaces this as a "N new articles" snackbar (acknowledged durably, so returning to the screen doesn't re-show it) and computes live "Checking feed X of Y" progress from the worker's tagged WorkInfo, scoped to the Unread/Older views that actually aggregate every subscription.
Diffstat (limited to 'config')
0 files changed, 0 insertions, 0 deletions