Commit Graph

31 Commits (e1df7d657c33bb3b814c31d48d1dd990d71fda57)

Author SHA1 Message Date
Your Name 139b29733e fix: serve Pulse and Horizon dashboards under admin/ to avoid username route collisions
- Pulse: set PULSE_PATH default to admin/pulse; Pulse::ignoreRoutes() in
  AppServiceProvider and register the dashboard explicitly in routes/web-admin.php
  so it is matched before the {username} profile catch-all.
- Horizon: set horizon.path to admin/horizon (all Horizon routes follow); add an
  explicit base-path GET mirroring Horizon's own HomeController@index for clarity.
- Remove now-unneeded 'horizon' reservation from RestrictedNames.
- Add PULSE_ENABLED-gated Pulse links to admin sidenav and topnav.
- Replace HorizonRedirectTest with HorizonDashboardTest (base path now renders
  the dashboard directly instead of redirecting).
1 day ago
Shlee 7e468230d6
Update horizon.php 2 weeks ago
Your Name bbe7cfa8e1 Split Horizon into priority-based supervisors, add balanceCooldown
and notification routing

All 15 queues previously ran through one auto-balanced supervisor.
Horizon's `balance: auto` does not honor queue array order for
priority, so despite queue names implying priority ('high' vs 'low'),
a burst on any one queue could starve any other sharing that
supervisor - e.g. a burst of mmo (image/video optimization, 23
dispatch sites, CPU/IO heavy) could delay high-queue DM/follow
delivery just as easily as it could delay low-queue background work.

Split into 4 supervisors grouped by actual job characteristics
(checked via grep across every ->onQueue() call site, not guessed):
- supervisor-priority: high, inbox, pushnotify, follow, default,
  shared - user-facing federation/DM/notification delivery.
- supervisor-fanout: feed, story, groups - bursty timeline/story
  fanout writes triggered by posts, likes, and follows.
- supervisor-media: mmo - image/video optimize/resize/thumbnail.
  Runs a fixed worker pool (balance: false) instead of auto-scaling,
  so it can't claim workers away from the other pools under load.
- supervisor-background: low, delete, adelete, move, intbg - imports,
  crawling, account deletion/migration; not time-sensitive.

Moved the shared supervisor shape into `defaults` (keyed per
supervisor name, per Horizon's own merge behavior) so `environments`
only needs to override what actually differs, instead of each
environment fully redefining supervisor-1 from scratch. Existing env
vars (HORIZON_MAX_PROCESSES, HORIZON_MIN_PROCESSES,
HORIZON_BALANCE_STRATEGY, HORIZON_SUPERVISOR_*) keep governing the
priority supervisor for continuity with existing deployments; the
three new supervisors get their own HORIZON_*_MAX_PROCESSES vars
with conservative defaults.

Also:
- Added balanceCooldown: 3 explicitly (previously relied on
  SupervisorOptions' own constructor default of the same value -
  behavior is unchanged, just no longer implicit).
- Wired LongWaitDetected notification routing
  (Horizon::routeMailNotificationsTo/routeSlackNotificationsTo) to
  new optional config('horizon.notification_routing') keys, sourced
  from env vars. Previously these were hardcoded, commented-out
  examples with nowhere to actually alert on the `waits` thresholds
  already configured below.

Verified by actually starting `php artisan horizon` and inspecting
`horizon:supervisors`: all 4 supervisors registered with exactly the
intended queues, supervisor-media correctly running fixed (non-auto)
balancing. Cross-checked every ->onQueue() call site in app/ against
the new supervisor queue lists - exact match, no queue dropped or
duplicated. Full test suite (715/715) and Larastan clean.
2 weeks ago
Daniel Supernault 42f361540c
Pint config/ 4 weeks ago
Daniel Supernault 24028a5955
Update horizon config, add new pushnotify queue 2 years ago
Daniel Supernault 4891bf4ad6
Add Move inbox handler 2 years ago
Daniel Supernault c5f85c71ae
Update DeleteRemoteProfile command 2 years ago
Daniel Supernault 21d97f6f10
Add groups queue to horizon 2 years ago
Daniel Supernault 1e3acadefb
Update horizon.php config 3 years ago
Daniel Supernault e6c1604d43
Update InboxPipeline, add inbox job queue and separate http sig validation from activity handling 4 years ago
Daniel Supernault 8ba338640f
Update FederationController, add two new queues (follow, shared) to prioritize follow request handling 4 years ago
Shlee caccd6691e
Update horizon.php 4 years ago
Shlee fafb2ca3b9
Update horizon.php 4 years ago
Shlee 05267395e1
Update horizon.php 4 years ago
Shlee f7aea85344
Update horizon.php 4 years ago
Daniel Supernault b1d51bb210
Update horizon config 4 years ago
Daniel Supernault 270578bb39
Update horizon config 4 years ago
Daniel Supernault 029f4507bd
Update horizon config 5 years ago
Daniel Supernault f6f2c27874
Update horizon config, add default timeout limit 5 years ago
Daniel Supernault eac6b76779
Update horizon config 5 years ago
Daniel Supernault bdc5abbfbc
Update horizon config 5 years ago
Daniel Supernault 07e8ddf8eb
Add new horizon queue 5 years ago
Daniel Supernault 7f4213924f
Update job queue, separate deletes into their own queue 5 years ago
Daniel Supernault 90c8a721c5
Update horizon config, add new default values 6 years ago
Daniel Supernault 3d6480d239
Update Horizon dark mode regression 7 years ago
Daniel Supernault 1b95efa931
Update horizon config 8 years ago
Daniel Supernault 1a4353d191
Update horizon config 8 years ago
daniel b8abbdd90f Apply fixes from StyleCI 8 years ago
Daniel Supernault de98c02a6e
Update horizon config 8 years ago
Daniel Supernault b9c02e5b68 Update horizon config 8 years ago
Daniel Supernault a94fee7169 Add Horizon config 8 years ago