"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गोरोइन में टाइमआउट के बाद HTTP अनुरोधों को जारी रखने से कैसे रोकें?

गोरोइन में टाइमआउट के बाद HTTP अनुरोधों को जारी रखने से कैसे रोकें?

2024-11-15 को प्रकाशित
ब्राउज़ करें:121

How to Prevent HTTP Requests from Continuing After Timeout in a Goroutine?

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