feat(admin): add maintenance tasks page to run console commands
Introduce a universal admin page that lists console commands marked with
the new #[AsAdminTask] attribute and runs them in two modes:
- foreground tasks (e.g. cache:clear) run synchronously in the request;
- background tasks (e.g. sitemap:generate) are queued to a file-based
store and picked up by the existing cron scheduler within a minute
via the new admin-tasks:run-queued command.
Queue and lock files live under data/admin_tasks (outside CACHE_PATH so
cache:clear cannot wipe them). Overlap is guarded by a flock mutex.
New route (rights >= 9): /admin/maintenance, sidebar link with a new
#[tool] sprite icon, and en/ru locale strings.
the new #[AsAdminTask] attribute and runs them in two modes:
- foreground tasks (e.g. cache:clear) run synchronously in the request;
- background tasks (e.g. sitemap:generate) are queued to a file-based
store and picked up by the existing cron scheduler within a minute
via the new admin-tasks:run-queued command.
Queue and lock files live under data/admin_tasks (outside CACHE_PATH so
cache:clear cannot wipe them). Overlap is guarded by a flock mutex.
New route (rights >= 9): /admin/maintenance, sidebar link with a new
#[tool] sprite icon, and en/ru locale strings.