Сценарии сборки ждут завершения задач командной строки, прежде чем продолжить? - PullRequest
3 голосов
/ 10 января 2012

Извините, если этот вопрос кажется расплывчатым, я на самом деле спрашиваю о скрипте сборки Phing в PHP, который построен на основе скрипта сборки Ant для Java, но я предположил, что другие скрипты сборки для других языков, вероятно, работают так же.

Я создал PHP-скрипт, который оптимизирует изображения, вы передаете сценарию через командную строку путь к файлу к папке изображений, а мой сценарий рекурсивно просматривает все изображения и папки изображений и запускает изображения черезеще 5 инструментов командной строки для оптимизации изображений в зависимости от типа изображения.

  • Все изображения проходят через ImageMagick , чтобы точно определить, какой тип файла они
  • jpg, jpeg изображения проходят через JPEGTran
  • Анимированные GIF-файлы проходят GIFsicle
  • Не анимированные GIF-файлы преобразуются в png с помощью ImageMagick и запускаются через PNGcrush
  • png изображения проходят PNGcrush , PNGquant и PNGout

Как вы можете себе представить, это займет много времени, отДо сих пор некоторые тесты могут занять от 5 до 15 секунд PER Image для запуска соответствующих программ.

Теперь вся причина, по которой я это создаю, заключается в том, что это потрясающе, но во-вторых, япостроил его с интерфейсом командной строки с единственной целью - использовать его с моим скриптом Phing Build, о котором я еще не писал или даже совсем не изучал.

Так что это простой вопросна данный момент, как я объяснил, для обработки изображений требуется значительное время, будут ли эти сценарии сборки обычно ждать / останавливаться, пока процесс командной строки не завершит работу, прежде чем завершит процесс сборки?

Я просто очень хочучтобы убедиться, что если по какой-то причине у меня была папка, полная изображений (т.е. 100 изображений), обработка которой могла бы занимать очень много времени, и я не хочу ничегот и перестань работать

1 Ответ

0 голосов
/ 11 января 2012

Да, инструменты сборки, такие как ant или phing, обычно ждут завершения выполнения команды.

Чтобы значительно ускорить процесс, учитывая, что ваша машина имеет более одного ядра, нужно использовать параллельное выполнение, которое по крайней мере доступно в ant.

...