fix(horizon): route webhook jobs to a dedicated cloud webhooks queue

On cloud, GitHub pull request webhooks and Stripe events now run on a
dedicated `webhooks` queue so a busy `high` queue cannot delay them.
Self-hosted instances keep these jobs on `high`.

- Add webhooks_queue() helper and use it in ProcessGithubPullRequestWebhook
  and StripeProcessJob
- Provision a `webhooks` Horizon pool in cloud production, sized by
  HORIZON_WEBHOOKS_PROCESSES (default 10)
- Document the new pool, rollout and rollback steps
- Cover pool provisioning and job queue routing in tests
This commit is contained in:
Andras Bacsai
2026-10-03 21:37:09 +02:00
parent 3575234b38
commit 083e71c481
7 changed files with 75 additions and 16 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ class ProcessGithubPullRequestWebhook implements ShouldBeEncrypted, ShouldQueue
public string $fullName,
public bool $isForkPullRequest = false,
) {
$this->onQueue('high');
$this->onQueue(webhooks_queue());
}
public function handle(): void