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

Všetky výnimky sú v RoundlyConsulting\HttpClientRateLimits\Exceptions a rozširujú RateLimitException:

VýnimkaKedy nastane
RateLimitExceptionZákladná trieda (rozširuje RuntimeException) — zachytíte ňou každú chybu balíka.
RateLimitExceededExceptionVypočítané čakanie prekročí strop maxWait() (pri zloženom limite najprísnejší zo všetkých okien). Obsahuje key, delayMs a maxWaitMs.
JobReleasedExceptionReleaseDeferrer vrátil úlohu do fronty. Obsahuje delaySeconds, key a job; job middleware HandlesRateLimitRelease pokus čisto ukončí.
InvalidLimitExceptionLimit povoľuje menej ako jednu požiadavku za okno (rate alebo maxAttempts pod 1).
UnknownLimiterProfileExceptionProfil s daným menom nie je definovaný v limiters.
InvalidStoreExceptionNakonfigurované úložisko neimplementuje kontrakt Store.
InvalidDeferrerExceptionNakonfigurovaný deferrer neimplementuje Deferrer alebo releasingJob() / ReleaseDeferrer dostal úlohu bez metódy release().
InvalidTimespanExceptionReťazec okna — aj per v profile — nie je second, minute, hour ani day.
UndefinedMethodExceptionMetóda volaná na RateLimit neexistuje ani na Limit, ani na Limiter.

Zachytenie všetkých

use RoundlyConsulting\HttpClientRateLimits\Exceptions\RateLimitException;

try {
    Http::rateLimit('github')->get('https://api.github.com/user');
} catch (RateLimitException $e) {
    // Any package error: unknown profile, max wait exceeded, invalid store/deferrer, …
    report($e);
}

V úlohe vo fronte s ReleaseDeferrer zachytí všeobecný catch aj JobReleasedException — čo nevadí, úloha už bola vrátená do fronty.

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.