Ответ 1
Какую библиотеку вызывать из моего проекта.
Они служат для разных целей, и вы не указали никаких подробностей о том, что вы пытаетесь сделать.
Самый фундаментальный уровень здесь - это очередь задач, которая позволяет планировать фоновые работы, которые могут быть сильно распараллелены. Это вентилятор. Скажем, у вас есть список из 1000 веб-сайтов, и вы хотели проверить время ответа для каждого из них и отправить электронное письмо на любой сайт, для загрузки которого требуется более 5 секунд. Запустив их как параллельные задачи, вы можете выполнить работу намного быстрее, чем если бы вы проверили все 1000 сайтов в последовательности.
Теперь позвольте сказать, что вы не хотите отправлять электронное письмо на каждый медленный сайт, вы просто хотите проверить все 1000 сайтов и отправить одно краткое сообщение электронной почты, в котором говорится, сколько из них заняло более 5 секунд, и сколько их заняло меньше. Это вентилятор. Это сложнее с очередью задач, потому что вам нужно знать, когда все задачи завершены, и вам нужно собрать и обобщить их результаты.
Введите API Pipeline. API Pipeline абстрагирует очередь задач, чтобы облегчить веер. Вы пишете то, что похоже на синхронный, процедурный код, но использует фьючерсы на Python и выполняется (как можно больше) параллельно. API Pipeline отслеживает зависимости задач и собирает результаты для облегчения построения распределенных рабочих процессов.
API MapReduce обертывает API Pipeline, чтобы облегчить определенный тип распределенного рабочего процесса: отображение результатов части работы в набор пар ключ/значение и уменьшение нескольких наборов результатов до одного путем объединения их значений.
Таким образом, они обеспечивают увеличение уровней абстракции и удобства вокруг общей системы выполнения распределенных задач. Правильное решение зависит от того, что вы пытаетесь выполнить.