0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-09 21:45:25 +08:00
discourse/app/jobs
Krzysztof Kotlarek 183ef04c1d
PERF: Warm the dashboard report cache for the default period (#42390)
Previously, the admin dashboard's report cache expired after 35 minutes
and was only ever populated by a request, so the first admin to land on
`/admin` after expiry paid the full cold cost — including admins passing
through the dashboard purely to navigate elsewhere.

This change raises the report cache TTL to 60 minutes and adds a
`Jobs::WarmDashboardReports` scheduled job that recomputes the
globally-keyed reports behind the highlights and engagement KPIs every
30 minutes, for the default 30-day window and the days either side of it
to cover admin timezones.

Reports mounted manually on the dashboard are not warmed —
`CoreReportProvider` puts the current user in their cache key, so they
stay per-admin for now.
2026-08-07 13:06:40 +08:00
..
concerns DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
onceoff DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
regular FIX: Skip moved-post notifications for recipients who cannot see the destination topic (#42170) 2026-07-30 09:03:49 -05:00
scheduled PERF: Warm the dashboard report cache for the default period (#42390) 2026-08-07 13:06:40 +08:00
base.rb DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00