For the complete documentation index, see llms.txt. This page is also available as Markdown.

दर सीमक

वर्कफ़्लो की किसी शाखा के चलने की दर को सीमित करता है।

डाउनस्ट्रीम workflow चरणों के निष्पादनों के बीच न्यूनतम समयांतराल लागू करें, निष्पादन आवृत्ति को सीमित करें और यह सुनिश्चित करके अति-निष्पादन रोकें कि जुड़े हुए चरण निर्दिष्ट cooldown अवधि से अधिक बार न चलें।

यह ब्लॉक कैसे काम करता है

यह ब्लॉक लगातार निष्पादनों के बीच एक cooldown अवधि लागू करके workflow शाखाओं की निष्पादन दर को सीमित करता है। ब्लॉक:

  1. एक cooldown अवधि (सेकंड में), एक depends_on संदर्भ, और next_steps इनपुट के रूप में

  2. एक आंतरिक state चर का उपयोग करके अंतिम निष्पादन का timestamp ट्रैक करता है

  3. वर्तमान समय की गणना करता है:

    • वीडियो प्रोसेसिंग के लिए: वीडियो metadata (frame number और FPS) का उपयोग करके video-time आधारित timestamp की गणना करता है जब video_reference_image प्रदान किया गया हो

    • अन्य संदर्भों के लिए: system clock time (datetime.now()) का उपयोग करता है

  4. अंतिम निष्पादन के बाद बीता समय के मुकाबले cooldown_seconds थ्रेशहोल्ड की तुलना करता है

  5. यदि पर्याप्त समय बीत चुका है (बीता समय >= cooldown_seconds):

    • अंतिम निष्पादन timestamp को अपडेट करता है

    • निर्दिष्ट next_steps ब्लॉकों तक निष्पादन जारी रखता है, जिससे downstream processing संभव होती है

  6. यदि पर्याप्त समय नहीं बीता है (बीता समय < cooldown_seconds):

    • वर्तमान workflow शाखा समाप्त करता है, cooldown अवधि समाप्त होने तक downstream निष्पादन को रोकता है

  7. flow control निर्देश लौटाता है जो या तो अगले चरणों तक जारी रहते हैं या शाखा समाप्त करते हैं

यह ब्लॉक workflow runs के दौरान execution state बनाए रखता है, यह ट्रैक करता है कि downstream चरण आखिरी बार कब निष्पादित हुए थे। The depends_on पैरामीटर एक निर्भरता संबंध स्थापित करता है, और rate limiter यह मॉनिटर करता है कि dependent चरण कब पूरा होता है ताकि यह निर्धारित किया जा सके कि cooldown अवधि समाप्त हुई है या नहीं। वीडियो workflow के लिए, ब्लॉक video-time-based timestamps (frame number और FPS से गणना किए गए) का उपयोग wall-clock time के बजाय कर सकता है, जो तब उपयोगी है जब वीडियो को real-time से तेज़ प्रोसेस किया जा रहा हो, जिससे throttling processing speed के बजाय video time के सापेक्ष सही ढंग से काम करती है।

आवश्यकताएँ

महत्वपूर्ण सीमा: वर्तमान में rate limiter केवल वीडियो प्रोसेसिंग संदर्भों में काम करता है। जब इसे HTTP सेवाओं (Roboflow Hosted API, Dedicated Deployment, या self-hosted inference server) के पीछे चल रहे workflows में उपयोग किया जाता है, तो HTTP अनुरोधों को प्रोसेस करने के लिए rate limiting का कोई प्रभाव नहीं होगा, क्योंकि प्रत्येक अनुरोध स्वतंत्र होता है और requests के बीच execution state बनाए नहीं रखा जाता।

सामान्य उपयोग मामले

  • महंगे ऑपरेशनों को सीमित करना: संसाधन-गहन downstream operations की आवृत्ति सीमित करें (उदाहरण: data uploads अधिकतम हर 5 सेकंड में चलाएँ, यदि इससे अधिक बार प्रयास हो तो छोड़ दें), जिससे system overload रोका जा सके और usage-based pricing वाले operations की लागत कम हो

  • सूचना स्पैम रोकना: recipients को अभिभूत होने से बचाने के लिए notification blocks की आवृत्ति सीमित करें (उदाहरण: detections होने पर ईमेल alerts अधिकतम प्रति मिनट एक बार भेजें, अनावश्यक notifications छोड़ दें), जिससे alerts सार्थक और कार्रवाई योग्य बने रहें

  • API दर-सीमा अनुपालन: बाहरी API कॉल्स या service integrations के लिए rate limits लागू करें (उदाहरण: external systems पर webhook calls को प्रति सेकंड एक बार तक सीमित करें, API quotas से अधिक होने से रोकें), जिससे बाहरी सेवा rate limits का अनुपालन सुनिश्चित हो

  • डेटाबेस लेखन अनुकूलन: databases या data storage systems में लिखने की आवृत्ति कम करें (उदाहरण: detection results अधिकतम हर 10 सेकंड में लॉग करें, updates को कुशलतापूर्वक batch करें), जिससे database load कम हो और overall system performance बेहतर हो

  • वीडियो प्रोसेसिंग दक्षता: वीडियो workflows में processing rate नियंत्रित करें जहाँ fast-forward processing तेजी से कई frames उत्पन्न कर सकती है (उदाहरण: analysis steps को video time के हर 2 सेकंड पर प्रोसेस करने के लिए throttle करें, real-time से तेज़ प्रोसेसिंग करते समय उचित timing बनाए रखें), सटीक rate limiting के लिए video-time-based throttling का उपयोग करें

  • संसाधन प्रबंधन: महंगे model inference या processing चरण कितनी बार चलें, इसे सीमित करके computational resources का प्रबंधन करें (उदाहरण: महंगी analysis को अधिकतम हर 3 सेकंड में एक बार चलाएँ, अनावश्यक processing छोड़ें), processing speed और resource constraints के बीच संतुलन बनाएँ

अन्य ब्लॉकों से कनेक्ट करना

यह ब्लॉक workflow के निष्पादन प्रवाह को नियंत्रित करता है और इससे जोड़ा जा सकता है:

  • workflow चरणों के बीच जहाँ आप निष्पादन दर सीमित करना चाहते हैं, rate limiter को एक source step (जिसका संदर्भ में depends_on) और target steps (निर्दिष्ट in next_stepsनिष्पादनों के बीच न्यूनतम समयांतराल लागू करने के लिए

  • सूचना ब्लॉकों से पहले (उदाहरण: Email Notification, Slack Notification, Twilio SMS Notification) ताकि cooldown अवधि से अधिक बार alerts न भेजे जाएँ, सूचना स्पैम रोका जा सके, alerts की प्रभावशीलता बनी रहे और recipients अभिभूत न हों

  • डेटा संग्रहण ब्लॉकों से पहले (उदाहरण: Local File Sink, CSV Formatter, Roboflow Dataset Upload, Webhook Sink) ताकि write operations सीमित हों और storage या network overhead कम हो, updates को कुशलतापूर्वक batch किया जा सके और अत्यधिक write operations रोके जा सकें

  • बाहरी API एकीकरणों से पहले (उदाहरण: Webhook Sink) ताकि बाहरी सेवा rate limits का अनुपालन हो, API calls अनुमत आवृत्ति से अधिक न जाएँ और rate limit errors रोकी जा सकें

  • वीडियो प्रोसेसिंग workflows में जहाँ fast-forward processing तेजी से frames उत्पन्न करती है, उपयोग करते हुए video_reference_image video-time-based throttling सक्षम करने के लिए जो वीडियो को real-time से तेज़ प्रोसेस करते समय भी सही ढंग से काम करता है, video playback time के सापेक्ष उचित निष्पादन समय बनाए रखते हुए

  • detection या analysis ब्लॉकों के बाद (उदाहरण: Object Detection, Classification, Line Counter) ताकि frequent detections या events द्वारा ट्रिगर किए गए downstream processing को सीमित किया जा सके, यह सुनिश्चित करते हुए कि expensive operations बहुत अधिक बार निष्पादित न हों, भले ही detections हर frame पर हों

प्रकार पहचानकर्ता

step में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/rate_limiter@v1 अपने workflow में इस ब्लॉक को एक चरण के रूप में जोड़ने के लिए।

गुण

नाम

प्रकार

विवरण

संदर्भ

name

स्ट्रिंग

इस चरण के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..

cooldown_seconds

फ़्लोट

next_steps blocks के लगातार निष्पादनों के बीच बीतने वाले न्यूनतम सेकंड। rate limiter अंतिम निष्पादन timestamp को ट्रैक करता है और केवल तभी निष्पादन जारी रखने देता है जब पिछले निष्पादन के बाद कम से कम इतने सेकंड बीत चुके हों। यह 0.0 से अधिक या उसके बराबर होना चाहिए। वीडियो workflows के लिए, जब video_reference_image प्रदान किया गया हो, यह cooldown अवधि system clock time के बजाय video time (frame number और FPS से गणना की गई) के आधार पर लागू होती है..

यह संदर्भ कॉलम workflow runtime में उपलब्ध गतिशील मानों के साथ property को पैरामीटराइज़ करने की संभावना को दर्शाता है। देखें workflow runtime. देखें Bindings अधिक जानकारी के लिए।

रनटाइम संगतता

सॉफ़्ट - रनटाइम hosted_serverless, dedicated_deployment; निष्पादन रिमोट : Cooldown / rate-limit timer process memory में संग्रहीत होता है। stateless या multi-replica HTTP runtimes पर remote step execution के साथ प्रत्येक अनुरोध को एक नया worker मिलता है, इसलिए cooldown throttling नहीं करता। Cooldown केवल persistent WebRTC session में local step execution के साथ दस्तावेज़ के अनुसार काम करता है।

इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन इसके binding kinds पर निर्भर करते हैं। देखें कि कौन-से binding kinds Rate Limiter संस्करण में v1 हैं।

इनपुट और आउटपुट बाइंडिंग्स
  • इनपुट

    • depends_on (*): उस workflow चरण का संदर्भ जो इस rate limiter ब्लॉक से तुरंत पहले आता है। यह निर्भरता संबंध स्थापित करता है - rate limiter यह मॉनिटर करता है कि यह चरण कब पूरा होता है ताकि निर्धारित कर सके कि अंतिम निष्पादन के बाद cooldown अवधि बीत चुकी है या नहीं। depends_on चरण कोई भी ऐसा workflow ब्लॉक हो सकता है जिसका आउटपुट rate-limited downstream processing को ट्रिगर करता है..

    • next_steps (चरण): rate limit अनुमति दे तो निष्पादित किए जाने वाले workflow चरणों की सूची (अर्थात, अंतिम निष्पादन के बाद पर्याप्त समय बीत चुका हो)। ये चरण केवल तभी control flow प्राप्त करते हैं जब cooldown अवधि समाप्त हो चुकी हो, जिससे throttled downstream processing संभव होती है। यदि cooldown अवधि समाप्त नहीं हुई है, तो शाखा समाप्त होने के कारण ये चरण निष्पादित नहीं होंगे। प्रत्येक step selector workflow में उस block को संदर्भित करता है जिसे rate limiting अनुमति देने पर निष्पादित किया जाना चाहिए..

    • video_reference_image (छवि): video-time-based timestamp generation के लिए उपयोग की जाने वाली video frame image का वैकल्पिक संदर्भ। प्रदान किए जाने पर, rate limiter system clock time के बजाय video metadata (frame number और FPS) के आधार पर timestamps की गणना करता है। यह तब उपयोगी है जब वीडियो को real-time से तेज़ प्रोसेस किया जा रहा हो, जिससे rate limiting video playback time के सापेक्ष सही ढंग से काम करे, processing speed के बजाय। यदि प्रदान नहीं किया गया (None), तो ब्लॉक system clock time (datetime.now()) का उपयोग करता है। केवल video processing workflows पर लागू।

  • आउटपुट

उदाहरण JSON परिभाषा

अंतिम अपडेट

क्या यह उपयोगी था?