NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Keď je events_enabled zapnuté (predvolene áno), limiter odosiela:

  • RequestDeferred — string $key, int $delayMs, int $hitsInWindow, Timespan $timespan — tesne pred pozastavením požiadavky pre vyčerpaný limit (znova, ak požiadavka počas čakania stratí miesto v prospech iného workera). Kľúč, počet aj okno opisujú okno, ktoré čakanie vynútilo (pri zloženom limite to najprísnejšie); hitsInWindow je skutočný počet požiadaviek zaznamenaných v ňom, 0 ak čakanie spôsobila len penalizácia od servera.
  • RequestAllowed — string $key, int $hitsInWindow, Timespan $timespan — po zaznamenaní a povolení požiadavky, s počtom pokusov primárneho okna vrátane tejto požiadavky.
  • RateLimitReset — string $key — po tom, čo ->reset() vymazal zaznamenané pokusy limitu (kľúč primárneho limitu).

Všetky tri sú v RoundlyConsulting\HttpClientRateLimits\Events. Počúvajte ich na logovanie, grafy alebo upozornenia pri obmedzení:

use Illuminate\Support\Facades\Event;
use RoundlyConsulting\HttpClientRateLimits\Events\RequestDeferred;

Event::listen(function (RequestDeferred $event): void {
    logger()->warning('Throttled outbound request', [
        'key' => $event->key,
        'delay_ms' => $event->delayMs,
        'window' => $event->timespan->value,
    ]);
});
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\HttpClientRateLimits\Events\RequestAllowed;

Event::listen(function (RequestAllowed $event): void {
    logger()->debug('Outbound request allowed', [
        'key' => $event->key,
        'hits' => $event->hitsInWindow,
        'window' => $event->timespan->label(), // 'Second' | 'Minute' | 'Hour' | 'Day'
    ]);
});
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\HttpClientRateLimits\Events\RateLimitReset;

Event::listen(function (RateLimitReset $event): void {
    logger()->info('Rate limit reset', ['key' => $event->key]);
});

Vypnutie udalostí

Pre najnižšiu možnú réžiu nastavte events_enabled na false:

HTTP_CLIENT_RATE_LIMITS_EVENTS_ENABLED=false

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.