---
title: "Opakovania, cache a limity — Git for Laravel | Roundly"
description: "Opakovanie čítaní s pauzou, podmienená ETag cache, klientske rozkladanie požiadaviek s adaptívnym čakaním, stav limitov a bezpečné logovanie."
url: https://roundly-consulting.com/sk/open-source/navody/git-for-laravel/odolnost-a-limity
language: sk
---

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

[Git for Laravel](https://roundly-consulting.com/sk/open-source/navody/git-for-laravel.md)

# Opakovania, cache a limity

## Opakovania

Čítania (GET) sa pri prerušenom spojení, 429 alebo 5xx opakujú s pauzou (retry.times pokusov). 4xx sa nikdy neopakuje a zápis sa neopakuje vôbec — 5xx pri zápise už mohlo prebehnúť.

## Klientske obmedzovanie rýchlosti

Každá požiadavka prechádza limiterom z http-client-rate-limits-for-laravel. Predvolene sa požiadavky rozkladajú v čase — keď je okno providera vyčerpané, volanie počká, kým sa uvoľní, namiesto toho, aby zlyhalo. So zapnutým adaptive (predvolené) limiter číta aj vlastné hlavičky Retry-After / X-RateLimit-\* a čaká presne tak, ako žiada server. Ak chcete okamžité zlyhanie, nastavte max\_wait:

```bash
GITHUB_RATELIMIT_MAX_WAIT=2000   # fail fast when a defer would exceed 2 s
GITHUB_RATELIMIT_JITTER=250      # spread retries by up to 250 ms
GITHUB_RATELIMIT_ENABLED=false   # or turn the client-side limiter off entirely
```

Odloženie, ktoré by presiahlo max\_wait, vyhodí RateLimitExceededException; výnimka nesie čas čakania ako nápovedu cez kontrakt HasRetryAfter z toolkitu:

```php
use RoundlyConsulting\Git\Exceptions\RateLimitExceededException;
use RoundlyConsulting\PackageToolkit\Contracts\HasRetryAfter;

try {
    Git::github()->repositories();
} catch (RateLimitExceededException $e) {
    $e->retryAfterSeconds();   // the wait the limiter would have needed
}

// In your exception handler — works for any throttled Roundly package:
if ($e instanceof HasRetryAfter) {
    return response('Too Many Requests', 429, ['Retry-After' => $e->retryAfterSeconds()]);
}
```

Limiter predvolene používa pamäťový store — v rámci procesu, čo stačí pre CLI a jeden worker. Pre kvótu zdieľanú medzi workermi či servermi nasmerujte http-client-rate-limits.store na cache, Redis alebo databázový store (HTTP\_CLIENT\_RATE\_LIMITS\_STORE); git žiadny store nevynucuje.

Každé prihlasovacie údaje majú vlastný rozpočet: kľúč limitera je git:<provider>:<owner>:<digest>, odtlačok tokenu, OAuth prístupu alebo inštalácie GitHub App — nikdy nie samotné tajomstvo —, prípadne anon bez prihlásenia. Platformy počítajú kvótu pre každý token či inštaláciu zvlášť, takže vyčerpaná kvóta jednej inštalácie ani adaptívne čakanie podľa Retry-After, ktoré s ňou prichádza, nikdy nezdržia inú; obmedzené tokeny jednej inštalácie zdieľajú jej rozpočet, rovnako ako ich počíta GitHub.

## Stav hlásený serverom

Limit, ktorý server nahlásil v poslednej odpovedi, je dostupný priamo na providerovi:

```php
$status = Git::github()->rateLimit(); // ?RateLimitStatus { limit, remaining, used, resetAt }

$status?->remaining;
$status?->resetAt;             // ?Carbon
```

## Podmienená cache a logovanie

Pri zapnutom cache.enabled sa ETagy ukladajú, posielajú späť cez If-None-Match a odpovede 304 sa obslúžia z cache. Záznamy cache sú oddelené podľa prihlasovacích údajov, takže dva účty nikdy nezdieľajú jeden záznam. Logovanie zapisuje metódu, URL, stav a trvanie na úrovni debug, nikdy tokeny ani telá:

```bash
GIT_CACHE_ENABLED=true
GIT_CACHE_STORE=redis
GIT_CACHE_TTL=3600
GIT_LOGGING_ENABLED=true
GIT_LOGGING_CHANNEL=stack
```

## 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/git-for-laravel.md)
