这个错误是由于MongoDB的连接池没能够正确地处理多个进程同时调用的情况而出现的。为了避免这个错误,可以在每个进程中单独创建MongoDB的连接池,而不是使用共享连接池来处理MongoDB的查询。以下是修改后的代码示例,可以根据实际需要进行修改:from urllib import parse from pymongo import MongoClient host = '122.25.31.65' username = 'crar_sin_rw' password = '9492412B_f3@A89' password = parse.quote(password) port = '27017' db = 'crawler' def get_mongo_client(): mongo_url = 'mongodb://{0}:{1}@{2}:{3}/{4}'.format(username, password, host, port, db) return MongoClient(mongo_url) def filter_mongo_data(json_data, db_name, collection_name): print('进入数据库') client = get_mongo_client() cursor_result = client[db_name][collection_name].find( {"stratagy_id": json_data['stratagy_id'], "app_name": json_data['app_name']}) if len(list(cursor_result)) < 5: print("插入中....") client[db_name][collection_name].insert_one(json_data) client.close() # 关闭连接 return True else: print('此策略id今天已经插满 请明天插入') client.close() # 关闭连接 return None在上述代码中使用get_mongo_client()函数来创建一个新的MongoDB连接池。在每个进程中,filter_mongo_data()函数会先调用get_mongo_client()函数来创建一个新的连接池对象,然后根据需要执行查询操作,最后在函数末尾调用client.close()来关闭该连接池。这样,就可以避免多个进程同时调用MongoDB连接池的问题,从而保证了程序的正常运行
这个错误是由于MongoDB的连接池没能够正确地处理多个进程同时调用的情况而出现的。为了避免这个错误,可以在每个进程中单独创建MongoDB的连接池,而不是使用共享连接池来处理MongoDB的查询。以下是修改后的代码示例,可以根据实际需要进行修改:
在上述代码中使用get_mongo_client()函数来创建一个新的MongoDB连接池。在每个进程中,filter_mongo_data()函数会先调用get_mongo_client()函数来创建一个新的连接池对象,然后根据需要执行查询操作,最后在函数末尾调用client.close()来关闭该连接池。这样,就可以避免多个进程同时调用MongoDB连接池的问题,从而保证了程序的正常运行