Многопроцессорная обработка скриптов Python - PullRequest
0 голосов
/ 07 февраля 2019

Я хотел бы запустить несколько скриптов Python (скажем, от script1.py до script10.py) параллельно в оболочке bash.Может кто-нибудь посоветовать, как лучше всего запустить все одновременно с помощью команды xargs?или есть другие предложения?Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Есть некоторые соображения, которые вы должны принять во внимание.(что другие ответы не учли)

  • Сценарии, разработанные для самостоятельной работы?Если это так, то это проще.Если нет, то вам понадобится набор сценариев для управления такими зависимостями, как Luigi Python.

  • Для сценариев могут потребоваться разные версии интерпретатора Python.(2.7 против 3.7 и т. Д.)

  • Если вы решите продолжить в Bash, то использование nohup позволит убедиться, что процесс не завершится после завершения вызывающего процесса.

Вопрос не такой простой, как вы думаете.

0 голосов
/ 07 февраля 2019

Я фанат xargs -P<number> для таких случаев использования, особенно потому, что он будет ждать, пока все работающие дети закончат.параллельно вы можете:

ls -1 ./script*.py | xargs -I% -P4 sh -c '%'

Если вам понадобится передать больше аргументов вашим сценариям, просто добавьте их после % (внутри кавычек)

0 голосов
/ 07 февраля 2019

С bash:

for i in {1..10}; do 
    python script${i}.py &
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...