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

Rozptyl čakania (jitter)

Pridajte k čakaniu náhodný jitter, aby sa množstvo workerov neprebudilo v tom istom okamihu:

Http::rateLimit(RateLimits::perMinute(30)->jitter(50)) // waits 0–50ms longer than needed
    ->get('https://api.example.com/orders');

Jitter sa uplatní len vtedy, keď požiadavka naozaj musí čakať, a čakanie vždy len predĺži: k skutočnému oneskoreniu pripočíta náhodných 0 až jitter milisekúnd, takže požiadavka nikdy neodíde skôr, než má okno voľné miesto. Pri zloženom limite platí najširší jitter zo všetkých okien. V pomenovanom profile použite kľúč jitter (v milisekundách).

Deterministické testy

Zdrojom náhodnosti je vymeniteľný kontrakt Randomizer (predvolený RandomRandomizer používa random_int). Pre deterministické testy ho vymeňte na Limiteri:

use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;
use RoundlyConsulting\HttpClientRateLimits\Jitter\Randomizer;

$limit = RateLimits::perSecond(1)->jitter(50);

// Always add the full +50ms so waits are deterministic in a test.
$limit->getLimiter()->setRandomizer(new class implements Randomizer {
    public function between(int $min, int $max): int
    {
        return $max;
    }
});

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.