2017-02-19 1 views
0

Скажем, у меня 10 000 файлов, и я собираюсь использовать код python для извлечения некоторой информации из этих файлов и записи этих данных в mongodb. Все эти операции будут выполняться на одном локальном компьютере.Запишите в mongodb после обработки файлов

Смогу ли я использовать многопроцессорный пакет python для выполнения всех операций параллельно, чтобы ускорить работу? Есть ли лучший способ сделать это?

ответ

0

Да, многопроцессорная обработка поможет распределить рабочую нагрузку. Если на вашем компьютере имеется, скажем, 8 ядер, то примерно 8 процессов на Python, вероятно, максимизируют пропускную способность. Более того, конкуренция с дисковым вводом-выводом или конкуренция с сервером MongoDB для процессорного времени станет узким местом. Функция «multiprocessing.Pool.map» особенно элегантна для разделения работы между процессами:

https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers

+0

Спасибо! Я беспокоился, что возникнет проблема, если несколько процессов попытаются записать в одну коллекцию в MongoDB. – Jack

+0

Просто попробовал, нет проблем! – Jack

+0

Потокобезопасный MongoDB, вы можете писать одновременно из многих соединений. –

Смежные вопросы