fix: Gitea Traefik routing and connection pool optimization
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\ExceptionHandling\Reporter;
|
||||
|
||||
/**
|
||||
* Registry for multiple exception reporters
|
||||
*
|
||||
* Allows registering multiple Reporter instances that will all receive
|
||||
* exceptions when report() is called. Failures in one reporter do not
|
||||
* prevent other reporters from being called (resilient design).
|
||||
*/
|
||||
final readonly class ReporterRegistry implements Reporter
|
||||
{
|
||||
/**
|
||||
* @param Reporter[] $reporters Variadic list of reporter instances
|
||||
*/
|
||||
private array $reporters;
|
||||
public function __construct(
|
||||
Reporter ...$reporters
|
||||
) {
|
||||
// Variadic parameters need manual assignment
|
||||
$this->reporters = $reporters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Report exception to all registered reporters
|
||||
*
|
||||
* Each reporter is called independently. If one reporter fails,
|
||||
* the others will still be called (resilient error handling).
|
||||
*
|
||||
* @param \Throwable $e Exception to report
|
||||
*/
|
||||
public function report(\Throwable $e): void
|
||||
{
|
||||
foreach ($this->reporters as $reporter) {
|
||||
try {
|
||||
$reporter->report($e);
|
||||
} catch (\Throwable $reportError) {
|
||||
// Silently continue - one reporter failure shouldn't stop others
|
||||
// In production, you might want to log this, but we don't want
|
||||
// to create a logging loop or dependency on Logger here
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user