---
title: "Zložené limity — HTTP Client Rate Limits for Laravel | Roundly"
description: "Vynúťte na jednej požiadavke viac okien — 5 za sekundu a 100 za minútu — o čakaní rozhoduje najprísnejšie okno."
url: https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel/zlozene-limity
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[HTTP Client Rate Limits for Laravel](https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel.md)

# Zložené limity

Odovzdajte pole limitov a všetky sa vynútia na jednej požiadavke. Limiter sa riadi najprísnejším oknom a pri povolení volania zaznamená pokus do každého okna:

```php
use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;

Http::rateLimit([RateLimits::perSecond(5), RateLimits::perMinute(100)])
    ->get('https://api.example.com/things');

// Or fluently, alongside the primary window:
$middleware = RateLimits::perSecond(5)->alongside(RateLimits::perMinute(100));

// Or by stacking the macro:
Http::rateLimit(RateLimits::perSecond(5))->rateLimit(RateLimits::perMinute(100));

// `by:` scopes every window — here both acct-1:second and acct-1:minute.
Http::rateLimit([RateLimits::perSecond(5), RateLimits::perMinute(100)], by: 'acct-1')
    ->get('https://api.example.com/things');
```

Každé okno si v úložisku vedie vlastný počet — pod kľúčom {key}:{window}, napr. global:second a global:minute (pozrite Limit::storeKey()) —, takže sa požiadavka v každom okne započíta presne raz bez ohľadu na to, ako limity kombinujete, a čistenie krátkeho okna nikdy nezmaže históriu dlhého. Limity s rovnakým kľúčom aj oknom zdieľajú jeden limit bez ohľadu na to, kde vznikli. Argument by: v makre zmení kľúč všetkých okien.

Každá položka poľa v Http::rateLimit(\[...\]) sa vyhodnotí tak, ako keby stála samostatne — Limit, RateLimit, meno profilu alebo celé číslo ako počet za minútu (Http::rateLimit(\['github', 30\])); iná položka alebo prázdne pole vyhodí InvalidLimitException.

## Atomicky naprieč oknami

Zložený limit (pole, compound() alebo alongside()) overí a zapíše všetky svoje okná jedným atomickým krokom úložiska. Zreťazené makrá sú dva samostatné limitery: každý je atomický na vlastných oknách, no prvý zapíše pokus skôr, než druhý rozhodne, či čakať — ak na tom záleží, uprednostnite zloženú formu. Http::rateLimit($limit, by: '...') mení kľúč kópie, takže odovzdaný RateLimit alebo Limit si zachová vlastný kľúč.

## Viac okien a fasáda

```php
use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;

// alongside() also takes a list of Limit / RateLimit entries:
$middleware = RateLimits::perSecond(5)->by('api')->alongside([
    RateLimits::perMinute(100)->by('api'),
    RateLimits::perDay(5_000)->by('api'),
]);

// Or build it through the facade:
$middleware = RateLimits::compound([
    RateLimits::perSecond(5)->by('api'),
    RateLimits::perMinute(100)->by('api'),
]);
```

maxWait() alebo jitter() nastavené na ktoromkoľvek okne zloženého limitu platia pre celé čakanie — vyhráva najprísnejší strop a najširší rozptyl — bez ohľadu na to, ktoré okno je práve úzkym hrdlom. Kontrolné metódy (remaining(), availableIn(), tooManyAttempts()) vracajú stav primárneho okna (vrátane prípadnej adaptívnej penalizácie); reset() vynuluje všetky okná limitu.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel.md)
