मैं अपने रेल 3 आवेदन के लिए दर-सीमित इंजन खोज रहा हूं। मुझे कुछ मिल गया है लेकिन मुझे वह चाहिए जो मुझे चाहिए। मुझे रैक-थ्रॉटल मणि और कर्ट मणि मिला है। ऐसा लगता है कि प्रत्येक अनुरोध के लिए रैक-थ्रॉटल काम करता है, लेकिन मुझे अनुरोध केवल एक क्रिया के लिए सीमित करना होगा। कक्षा दो साल पहले अद्यतन किया गया था। क्या कोई मुझे किसी अन्य रेट-सीमित इंजन के बारे में बता सकता है जिसका मैं उपयोग कर सकता हूं? ध्यान दें कि इसे कैशिंग के साथ काम करना चाहिए।रेल नियंत्रकों के लिए दर-सीमा
उत्तर
ठीक है, आखिरकार रैक थ्रॉटल एक अच्छा समाधान है।
आप इसे निम्न तरीके से कर सकते हैं। आपको अपने कस्टम लिमिटर को परिभाषित करने की आवश्यकता है। यह निम्न limiters
Rack::Throttle::Limiter
Rack::Throttle::Interval
Rack::Throttle::Hourly
Rack::Throttle::Daily
सब कुछ आप कस्टम तर्क को परिभाषित करने के ऊपर वर्गों में से एक से निकाले जाते हैं करने की जरूरत है दोनों में से किसी के आधार पर किया जा सकता है। उदाहरण के लिए:
class CustomLimiter < Rack::Throttle::Interval
def allowed?(request)
#custom logic here
end
end
आप RAILS_ROOT/lib
पथ में इस फ़ाइल को रखना चाहिए। फिर application.rb
फ़ाइल में आपको निर्दिष्ट करना चाहिए कि किस वर्ग को लिमिटर के रूप में उपयोग करना है।
#lib/custom_limiter.rb
class CustomLimiter < Rack::Throttle::Interval
def allowed?(request)
path_info = Rails.application.routes.recognize_path request.url rescue {}
if path_info[:controller] == "application" and path_info[:action] == "check_answer"
super
else
true
end
end
end
#config/application.rb
class Application < Rails::Application
...
#Set up rate limiting
config.require "custom_limiter"
config.middleware.use CustomLimiter, :min => 0.2
...
end
आप
युपीडी इस उपयोगी होगा विचार
आशा में this लेने की जरूरत हो सकता है: उदाहरण के लिए यदि आप केवल एक कार्रवाई करने के लिए सीमक लागू करना चाहते हैं तो आप इसे निम्नलिखित तरीके से कर सकते हैं :
आप एक और समाधान की जाँच कर सकते हैं: rack-attack
गलत कोड! config.require "custom_failure"
–
CelinHC
तय करें। सबकुछ ठीक लगता है – RomanKapitonov
चरण-दर-चरण के लिए धन्यवाद। बस सेटअप के बारे में कुछ और जानने के लिए। क्या आप काउंटर स्टोर करने के लिए किस प्रकार का डीबी उपयोग कर रहे हैं? – Eduardo
rack-throttle
जो आप चाहते हैं वह करता है। Subclass Limiter
और अपनी खुद की #allowed?
विधि परिभाषित करें। अगर अनुरोध वह सीमा नहीं है जिसे आप सीमा चाहते हैं तो उसे सही वापस लौटाएं और सीमा की ओर गिनें न करें। daily.rb
पर एक नज़र डालें। #cache_set
को फिर से परिभाषित करें, इसलिए यह उन लोगों को सहेजता नहीं है जो उस मार्ग से मेल नहीं खाते हैं, जिसे आप सीमित करना चाहते हैं।
पर तैनात किया जाएगा, मैंने इसे ओवरराइड किया है, और फ़ाइल को lib निर्देशिका में डाल दिया है और सर्वर को पुनरारंभ किया है लेकिन यह काम नहीं करता है। 'क्लास कस्टमलिमीटर <रैक :: थ्रॉटल :: लिमिटर डीफ़ अनुमत है? (अनुरोध) सच == सच अंत अंत 'पृष्ठ खोला गया है लेकिन संपत्ति लोड नहीं की गई है और मुझे' त्रुटि नहीं है विधि: त्रुटिहीन' प्रत्येक ' "403 निषिद्ध (दर सीमा पार हो गई) 'तो शैलियों को लागू नहीं किया जाता है।' application.rb' में मेरे पास 'config.middleware.use रैक :: थ्रॉटल :: अंतराल,: न्यूनतम => 0.2' है। क्या गलत है? – RomanKapitonov
- 1. रेल 3: नियंत्रकों के अंदर कॉल फ़ंक्शन
- 2. मॉडल या नियंत्रकों से रेल में आवेषण?
- 3. रेल: एक सहायक विधि को परिभाषित करने के लिए जहां कई नियंत्रकों के लिए उपलब्ध होगा?
- 4. कहाँ रेल में नियंत्रकों द्वारा उपयोग के लिए पुन: प्रयोज्य तरीकों डाल करने के लिए
- 5. एकाधिक नियंत्रकों के लिए एकल फैक्टरी?
- 6. नेस्टेड नियंत्रकों के लिए यूनिट परीक्षण
- 7. मैं मौजूदा नियंत्रकों के लिए चश्मा कैसे उत्पन्न करूं?
- 8. रेल पर रूबी में नियंत्रकों के बीच कोड का पुन: उपयोग करने के लिए सर्वोत्तम अभ्यास
- 9. रेल नियंत्रकों के लिए रूबी सहायक तरीकों को कहां रखा जाए?
- 10. बड़ी संख्या में नियंत्रकों से निपटने के लिए "रेल मार्ग" क्या है?
- 11. मार्ग रेल नेस्टेड संसाधन हो रही नेस्टेड नियंत्रकों
- 12. रेल नियंत्रकों का नाम बदलने का आसान तरीका
- 13. कुछ (सभी नहीं) नियंत्रकों के लिए HTTP बेसिक ऑथ
- 14. नियंत्रकों क्षेत्रों
- 15. अलग नियंत्रकों
- 16. EmberJS नियंत्रकों
- 17. अन्य नियंत्रकों
- 18. रेल 3.2.3 नाम नियंत्रक नियंत्रकों को उसी नाम के साथ वैश्विक नियंत्रकों द्वारा ओवरराइड किया जा रहा है
- 19. एम्बर नियंत्रकों के एकाधिक उदाहरण
- 20. रेल ऐप के लिए आरडीओसी बनाना
- 21. रेल नियंत्रकों के दृश्य में एक नियंत्रक के दृश्य से आंशिक रूप से प्रस्तुत करना
- 22. ऐप्पल अपने नियंत्रकों को अन्य नियंत्रकों को कैसे बनाता है?
- 23. एमवीसी विभिन्न नियंत्रकों के लिए फॉर्म सबमिट करें
- 24. सभी नियंत्रकों को सुरक्षित करने के लिए Zend_Auth का उपयोग
- 25. मेरे उप-दृश्य नियंत्रकों के लिए कमजोर या मजबूत गुण?
- 26. एमवीसी 3 - नियंत्रकों के लिए एक फ़ोल्डर जोड़ें?
- 27. केवल नियंत्रकों के लिए सहायक तरीके कहां रखा जाए?
- 28. केवल विशिष्ट नियंत्रकों के लिए पहले_फिल्टर को कॉल करना
- 29. Ninject अलग नियंत्रकों पर बाध्य करने के लिए
- 30. नियंत्रकों और मॉडलों के निर्माण के बाद रेल दृश्यों (केवल) पर रूबी बनाएं
वेब सर्वर पर थ्रॉटलिंग के बारे में क्या है (अपाचे?) – Roger
@Rogier परियोजना को उसकेोकू – RomanKapitonov