У меня проблема, над которой я борюсь неделями.
def doSomething(item):
client = MongoClient(DB_CONNECTION_STRING, maxPoolSize=100000, connect=False)
dbclient = client.mydb
try:
getAWebpage()
except MyException as e:
client.close()
# I know that the recursion here could cause problems, but this is not the point
doSomething(item)
else:
# do something with the web page and save in the DB
dbclient.collection.insertone({...})
...
client.close()
def singleTask(item):
doSomething(item)
time.sleep(0.3)
def startTask(list, threads=10):
pool = ThreadPool(threads)
results = pool.map(singleTask, list)
pool.close()
pool.join()
return results
Я вижу в журнале MongoDB, что он открывает много соединений, не закрывая их, и в определенный момент MongoDB перестает принимать соединения, что приводит к сбою всего.
Что не так с этим кодом ? Я действительно не могу понять. Я знаю, что рекурсия может вызвать проблемы с общим кодом, но сначала я пытаюсь решить эту проблему.
Любая помощь будет принята с благодарностью! Спасибо