Predvolené hodnoty a prepisy
Globálne v konfigurácii
Nastavte store / deferrer v config/http-client-rate-limits.php: použije ich každý limit, ktorý manager vytvorí — fasáda RateLimits, injektovaný manager, pomenované profily, zložené polia aj každá forma Http::rateLimit():
use RoundlyConsulting\HttpClientRateLimits\Store\CacheStore;
// config/http-client-rate-limits.php
'store' => CacheStore::class,
'cache_store' => 'redis', // any store from config/cache.php (null = default)
'cache_prefix' => 'http-client-rate-limits',Pre jedno miesto volania
RateLimits::usingStore() / usingDeferrer() vrátia nakonfigurovanú kópiu managera, takže zdieľaný singleton sa nikdy nezmení:
use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;
use RoundlyConsulting\HttpClientRateLimits\Store\RedisStore;
$limits = RateLimits::usingStore(new RedisStore('cache'))->usingDeferrer(new MyDeferrer);
$limits->perMinute(30);Kópia, ktorá úložisko neprepisuje, ďalej zdieľa úložisko managera z konfigurácie, takže pokusy sa stále sčítavajú do jedného limitu v rámci procesu. RateLimits::releasingJob() je rovnaká kópia, len s ReleaseDeferrer.
Pre jednu inštanciu
use RoundlyConsulting\HttpClientRateLimits\Facades\RateLimits;
use RoundlyConsulting\HttpClientRateLimits\Store\RedisStore;
$middleware = RateLimits::perMinute(30);
$middleware->setStore(new RedisStore('cache')); // share limits across processes via Redis
$middleware->setDeferrer($myDeferrer);Poradie vyhodnotenia
- setStore() / setDeferrer() na inštancii — pre danú inštanciu vždy vyhráva.
- RateLimits::usingStore() / usingDeferrer() / releasingJob() — pre limity vytvorené z tejto kópie managera.
- Konfiguračné kľúče store a deferrer — pre všetko ostatné.
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 kryptomienOdoslaní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.