मेरे पास discord.py के साथ बनाया गया एक अजगर डिस्कॉर्ड बॉट है, जिसका अर्थ है कि पूरा प्रोग्राम एक ईवेंट लूप के अंदर चलता है।पाश खत्म होने से पहले पायथन कोरआउट से परिणाम एकत्रित करना
जिस फ़ंक्शन पर मैं काम कर रहा हूं जिसमें कई सौ HTTP अनुरोध हैं और परिणाम को अंतिम सूची में शामिल करना शामिल है। इन्हें क्रम में करने में लगभग दो मिनट लगते हैं, इसलिए मैं उन्हें एसिंक बनाने के लिए aiohttp का उपयोग कर रहा हूं। मेरे कोड के संबंधित भाग Aiohttp दस्तावेज़ों में क्विकस्टार्ट उदाहरण के समान हैं, लेकिन यह एक रनटाइम त्रुटि को फेंक रहा है: सत्र बंद है। 'एकाधिक URL प्राप्त करने' के तहत https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html पर एक उदाहरण से पद्धति ली गई थी।
async def searchPostList(postUrls, searchString)
futures = []
async with aiohttp.ClientSession() as session:
for url in postUrls:
task = asyncio.ensure_future(searchPost(url,searchString,session))
futures.append(task)
return await asyncio.gather(*futures)
async def searchPost(url,searchString,session)):
async with session.get(url) as response:
page = await response.text()
#Assorted verification and parsing
Return data
मुझे नहीं पता कि यह त्रुटि क्यों बदलती है क्योंकि मेरा कोड दो संभवतः कार्यात्मक उदाहरणों के समान है। इवेंट लूप स्वयं ठीक काम कर रहा है। यह हमेशा के लिए चलता है, क्योंकि यह एक बॉट आवेदन है।
वाह! वह पूरी तरह से मेरे दिमाग फिसल गया। हाहाहा, आप बता सकते हैं कि मैं कितना नया एसिंक हूं। आपकी त्वरित सहायता के लिए धन्यवाद! – user3896248