Ship production optimization M1-M12.5A: queues, metrics, HTTP observability, and vector search reliability.

Keep similar-ai from tripping the global circuit on a lone URL 502, clamp Qdrant search to 100, and add Server-Timing plus slow-request logging. Studio shared props, Academy S3 exists caching, heat chunking, and Redis/scheduler hygiene stay in this rollout.
This commit is contained in:
2026-08-25 07:58:47 +02:00
parent f52879edbb
commit 8a80aae21e
114 changed files with 9293 additions and 284 deletions
+25 -3
View File
@@ -99,6 +99,7 @@ return [
'waits' => [
'redis:broadcasts' => 15,
'redis:default' => 60,
'redis:mail' => 60,
'redis:notifications' => 90,
],
@@ -209,9 +210,9 @@ return [
'maxJobs' => 0,
'memory' => 128,
'tries' => 1,
// Long-running recommendation rebuild jobs declare timeouts up to 900s.
// Keep the worker timeout above that ceiling so Horizon does not kill
// healthy jobs before Laravel can enforce the job-level timeout.
// Must stay below config/queue.php redis.retry_after (default 1080).
// Nightly recommendation rebuilds are chunked; keep headroom for
// remaining long jobs on the default queue.
'timeout' => 960,
'nice' => 0,
],
@@ -228,6 +229,21 @@ return [
'timeout' => 90,
'nice' => 0,
],
// Mail is intentionally isolated: SMTP latency must not block
// search/recommendation workers, and mail jobs declare tries=3–5.
'supervisor-mail' => [
'connection' => 'redis',
'queue' => ['mail'],
'balance' => 'simple',
'autoScalingStrategy' => 'time',
'maxProcesses' => 1,
'maxTime' => 0,
'maxJobs' => 0,
'memory' => 128,
'tries' => 5,
'timeout' => 90,
'nice' => 0,
],
],
'environments' => [
@@ -242,6 +258,9 @@ return [
'balanceMaxShift' => 1,
'balanceCooldown' => 3,
],
'supervisor-mail' => [
'maxProcesses' => 2,
],
],
'local' => [
@@ -251,6 +270,9 @@ return [
'supervisor-messaging' => [
'maxProcesses' => 2,
],
'supervisor-mail' => [
'maxProcesses' => 1,
],
],
],