Мультипроцессинг используйте.
На чтение или на запись?
На чтение
Тут сложнее ибо надо понять как организовать. Как читать будете.
Как на чтение? У вас на входе условно должны быть список аргументов по которым ищете. Каждый запрос в процесс. Поэтоиу и спросил как читать.
Это если нельзя в 1 запрос оформить к базе.
Есть 500+ коллекций Сейчас в цикле пробегаюсь по всем и получаю данные за нужный временной промежуток (одинаковый для всех запросов Те меняется только имя коллекции
Делаете функцию в которую передаете аргументами connection string и аргументы. Она читает возвращает данные. Создаете pool из mp и передаете функцию и аргументы. Позже условный пример скину.
Аргументы у функции лучше сделать: connection_string, database, collection_name, query. В этой функции создаете клиента делаете выборку из коллекции и вовращаете результат. Очень хороший пример из документации к python у них на сайте. Можно так же сделать. https://docs.python.org/3/library/concurrent.futures.html Вам лучше ProcessPoolExecutor. Там можно прям по примерам из документации сделать.
Там из документации по ссылке он проверяют список чисел на простоту. У них список чисел - это ваши коллекции. А функция проверки на простоту - ваша функция в которой цепляетесь к базе и выборку делаете. Условно конечно - но концепт очень понятен.
Можно еще через асинхронные запросы. Но это уже на любителя - кто как делает.
Обсуждают сегодня