---
title: "Kontrola pred odoslaním — HTTP Client Rate Limits | Roundly"
description: "Zistite, koľko požiadaviek zostáva a o koľko bude ďalšia povolená — bez zaznamenania pokusu — a vynulujte limit kľúča."
url: https://roundly-consulting.com/sk/open-source/navody/http-client-rate-limits-for-laravel/kontrola-pred-odoslanim
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)

# Kontrola pred odoslaním

Pred odoslaním sa limitera opýtajte na aktuálny stav — bez zaznamenania pokusu:

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

$limit = RateLimits::perMinute(30)->by('acct-1');

$limit->remaining();        // requests still allowed in the window (0 during a server penalty)
$limit->availableIn();      // ms until the next request is allowed (0 = now)
$limit->tooManyAttempts();  // bool: is the window exhausted right now?
```

## Oneskorenie v danom čase

RateLimit presmeruje volania na podkladový Limit a Limiter, takže zistíte, ako dlho by ste čakali v konkrétnom okamihu (v milisekundách, podľa hodín deferrera):

```php
$middleware = RateLimits::perHour(6);

$at    = $middleware->getDeferrer()->timestamp();
$delay = $middleware->delayUntilNextRequestInMs($at); // 0 = send now, else wait this many ms

$middleware->isOverMaxAttempts(7); // true
```

## Gettery

```php
$limit = RateLimits::perMinute(30)->by('acct-1');

$limit->getKey();               // 'acct-1'
$limit->getMaxAttempts();       // 30
$limit->getTimespan();          // 'minute'
$limit->isUnderMaxAttempts(29); // true
$limit->getStore();             // the Store in use
$limit->getDeferrer();          // the Deferrer in use
$limit->getLimiter();           // the underlying Limiter
```

## Preplánovanie namiesto čakania

Kontrola číta úložisko, preto ju v úlohách vo fronte kombinujte so zdieľaným úložiskom. Úloha sa potom môže sama vrátiť do fronty namiesto čakania:

```php
public function handle(): void
{
    // Needs a shared store (cache, Redis or database) so every run reads the same budget.
    $limit = RateLimits::profile('github')->by("acct:{$this->accountId}");

    if ($limit->tooManyAttempts()) {
        $this->release((int) ceil($limit->availableIn() / 1000));

        return;
    }

    Http::withMiddleware($limit)->get('https://api.github.com/user');
}
```

Kontrolné metódy opisujú primárne okno (vrátane prípadnej adaptívnej penalizácie) a nič nezaznamenajú; zložené okná sa vyhodnocujú pri odoslaní požiadavky.

## Vynulovanie limitu

Vymažte pokusy zaznamenané pre kľúč — po zmene tarify alebo medzi dvoma fázami dávky —, aby ďalšia požiadavka prešla okamžite:

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

RateLimits::perMinute(60)->by('stripe')->reset();

// A compound limit clears every window it enforces.
RateLimits::perSecond(5)->by('stripe')->alongside(RateLimits::perMinute(100)->by('stripe'))->reset();
```

Vynulovanie vymaže okná, ktoré limit vynucuje (v prvom riadku stripe:minute), nie iné okná s rovnakým kľúčom, a nezruší penalizáciu, ktorú adaptívny limit zapísal podľa hlavičky Retry-After servera — o toto čakanie požiadal server. Spustí udalosť RateLimitReset.

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