одна и та же хоть с одним воркером, хоть с 9, хотя всего записей девять. Трабла с чтением из монговского gridfs, но в чем конкретно проблема понять не могу
mongo_client = MongoDb() - просто новый инстанс pymongo
def process_file(file_id):
mongo_client = MongoDb()
wp_file = mongo_client.grid_fs.find_one({"_id": bson.ObjectId(file_id)})
a = wp_file.read()
return "lol"
def main():
mongo_client = MongoDb()
files = mongo_client.get_all_files()
with ProcessPoolExecutor(max_workers=9) as executor:
futures = []
for file_data in files:
futures.append(executor.submit(process_file, file_data._id))
print(*(future.result() for future in as_completed(futures)))
if name == "__main__":
main()
Поди монга однопоточная
Ну так я каждый раз новый коннект делаю
А почему оно должно быть быстрее
может глобальный лок в реализации MongoDb
Там просто создание MongoClient
можно как-то внутри монги текущие коннекты глянуть?
Это грустно, казалось что нет
Недавно смотрел бенчмарки монги с 1, 10, 256 соединениями и тд, если не ошибаюсь то до какого-то момента количество соединений помогает.
С монгой то помогает. А с гридфс нет походу
можно попробовать с другим клиентом тоже самое сделать, например с GOшным если проблема остается, значит, в монге/гридфс/движке/драйвере/ос затык
Обсуждают сегодня