Goroutine Timeout
प्रदान किया गया फ़ंक्शन, Find(), HTTP अनुरोधों की एक श्रृंखला बनाने और उनकी प्रतिक्रियाओं को संभालने के लिए एक goroutine का उपयोग करता है। हालाँकि, चिंता की बात यह है कि ये अनुरोध पृष्ठभूमि में जारी रहते हैं, भले ही वे निर्दिष्ट समय सीमा से अधिक हो जाएं। कोड. जब ढूँढें () फ़ंक्शन एक टाइमआउट लौटाता है, तो मुख्य गोरोइन जारी रहता है और पृष्ठभूमि गोरोइन अनिवार्य रूप से छोड़ दिया जाता है। , समाधान प्रत्येक HTTP अनुरोध के लिए context.Context का उपयोग करना है। यदि टाइमआउट होता है तो एक संदर्भ आपको अनुरोध रद्द करने की अनुमति देता है।
func Find() (इंटरफ़ेस{}, बूल) { ctx, रद्द करें := context.WithTimeout(context.Background(), 50*time.मिलीसेकंड) स्थगित करें रद्द करें() ch := बनाओ(चान प्रतिक्रिया, 1) जाओ func() { डेटा, स्थिति := findCicCode() ch
जब टाइमआउट होता है, तो cancel() को कॉल करने से ctx के भीतर बनाए गए सभी HTTP अनुरोध रद्द हो जाएंगे। यह उन अनुरोधों द्वारा किसी भी आगे की प्रक्रिया या संसाधनों की खपत को रोकता है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3