decayMinutes
- यह आपकी सीमा के भीतर एक समय गिना जाएगा। तकनीकी रूप से सीमाएं टीटीएल (टाइम टू लाइव) के साथ एक मूल्य है $decayMinutes * 60
सेकंड में कैश में जो प्रत्येक हिट पर वृद्धि करता है। जब टीटीएल मूल्य से अधिक हो जाता है तो कैश में स्वचालित रूप से नष्ट हो जाएगा और नई हिट गिनती शुरू हो जाएगी।
RateLimit::hit() कोड पर देखें। यह बहुत स्पष्ट है:
/**
* Increment the counter for a given key for a given decay time.
*
* @param string $key
* @param float|int $decayMinutes
* @return int
*/
public function hit($key, $decayMinutes = 1)
{
$this->cache->add(
$key.':timer', $this->availableAt($decayMinutes * 60), $decayMinutes
);
$added = $this->cache->add($key, 0, $decayMinutes);
$hits = (int) $this->cache->increment($key);
if (! $added && $hits == 1) {
$this->cache->put($key, 1, $decayMinutes);
}
return $hits;
}
आप 5 मिनट प्रति 10 हिट से कुछ गतिविधियों को सीमित करना चाहते हैं, की तुलना में decayMinutes
5.
स्रोत
2017-10-15 03:27:40
होना चाहिए स्रोत कोड को पढ़ने के होने से, यह मेरी समझ भी है। – fubar
यह गलत जवाब है। 'decayMinutes' (Laravel 5.5 में) एक ब्लॉक समय नहीं है। –
मुझे लगता है कि लॉगिन ब्लॉक समय एक उदाहरण है, और यह थ्रॉटलिंग के लिए ज्यादातर वही काम करता है। 'अनन्य यूआरएल अनुरोध' के साथ बस 'लॉगिन प्रयास' को प्रतिस्थापित करें। यदि आप $ decay मिनट मिनट के लिए कोई पेज या एपीआई अनुरोध नहीं करते हैं तो थ्रॉटल काउंटर रीसेट हो जाता है। –