समवर्ती गोरोइन निष्पादन को सीमित करना
ऐसे परिदृश्य पर विचार करें जहां आपके पास संसाधित करने के लिए यूआरएल की एक सूची है और आप चलने वाले समवर्ती गोरोइन की संख्या को सीमित करना चाहते हैं . उदाहरण के लिए, यदि आपके पास 30 यूआरएल हैं, तो हो सकता है कि आप केवल 10 गोरआउट्स समानांतर में काम करना चाहें। . हालाँकि, यह दृष्टिकोण सभी यूआरएल को संसाधित करने के बाद अवरुद्ध नहीं होता है। इस समवर्ती सीमा को प्राप्त करने का एक अधिक प्रभावी तरीका एक निर्दिष्ट संख्या में कार्यकर्ता गोरोइन बनाना और उन्हें एक समर्पित चैनल के माध्यम से यूआरएल खिलाना है।
यहां कोड का एक उन्नत संस्करण है:
समानांतर := flag.Int('समानांतर', 10, 'अधिकतम समानांतर अनुरोधों की अनुमति है') झंडा.पार्स() यूआरएल := ध्वज.आर्ग्स() // यूआरएल रखने के लिए एक चैनल बनाएं जिसका कर्मचारी उपभोग करेंगे वर्करयूआरएलचान := बनाओ(चान स्ट्रिंग) // श्रमिकों को यूआरएल खिलाने के लिए एक गोरोइन शुरू करें जाओ func() { _, u के लिए := रेंज फ़्लैग.आर्ग्स() { वर्करयूआरएलचान इस अद्यतन कोड में, हम प्रत्येक अनुमत समवर्ती निष्पादन के लिए एक वर्कर गोरोइन बनाते हैं, और ये वर्कर समर्पित चैनल से यूआरएल लाते हैं। एक बार सभी यूआरएल वितरित हो जाने के बाद, वर्करयूआरएलचैन बंद हो जाता है, जो श्रमिकों को उनके वर्तमान यूआरएल के पूरा होने पर बाहर निकलने के लिए प्रेरित करता है। यह तंत्र प्रभावी ढंग से चलने वाले समवर्ती गोरोइन की संख्या को सीमित करता है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3