Я планирую переписать мой старый Python2 .7 скрипт, который загружает файлы и выполняет кучу операций для каждого файла в зависимости от содержимого. Это может потребовать распаковки (.tar.gz, .zip, .7z), повторного сжатия и манипулирования файлами.
Я хочу запускать каждую задачу параллельно. Обычно одной задачей является: 1) загрузить файл 2) извлечь 3) выполнить манипуляции с файлами, если необходимо 4) повторно сжать.
Я знаю о GIL, но с другой стороны, вышеуказанные операции ждут Операции ввода-вывода для завершения, чтобы потоки могли быть одним из вариантов?
При многопроцессорной обработке GIL отсутствует, и можно действительно выполнять задачи, используя все ядра. Как во всем этом смешивается asyncio?
Какой будет самый чистый подход? Просто использовать многопроцессорность для каждой задачи?