在继续之前,构建脚本是否等待命令行任务完成?

时间:2012-01-10 15:51:26

标签: php ant build-process phing

很抱歉,如果这个问题看起来很模糊,我实际上是在询问PHP中的Phing构建脚本,它是基于Java的Ant构建脚本构建的,但我认为其他语言的其他构建脚本可能以相同的方式执行。

我已经构建了一个优化图像的PHP脚本,您通过命令行将脚本传递给图像文件夹的文件路径,我的脚本将以递归方式遍历图像的所有图像和文件夹,并通过另一个图像运行图像5个命令行工具,根据图像的类型优化图像。

  • 所有图片都通过 ImageMagick 来准确确定它们是什么类型的文件
  • jpg,jpeg 图片通过 JPEGTran
  • GIF动画通过 GIFsicle
  • 非动画gif的通过 ImageMagick 转换为png并通过 PNGcrush
  • 运行
  • png 图片通过 PNGcrush PNGquant PNGout

你可以想象这需要花费很多时间,从目前为止的一些测试中,可能需要5-15秒 PER Image 来运行相应的程序。

现在我构建这个的全部原因是因为它很棒但是其次我用一个命令行界面构建它的唯一目的是能够将它与我的Phing Build脚本一起使用,我还没有写过或者甚至还真的学到了所有。

现在只是一个基本问题,正如我所解释的那样,处理图像需要相当长的时间,这些构建脚本通常会等待/停止命令行进程在完成构建过程之前完成运行吗?

我真的很想确保如果由于某种原因我有一个充满图像的文件夹(即100张图片)可能需要很长时间才能处理,而且我不希望任何事情超时并停止工作

1 个答案:

答案 0 :(得分:0)

是的,像ant或phing这样的构建工具通常会等待命令执行完成。

为了大大加快速度,假设你的机器有多个核心,那就是使用至少在ant中可用的并行执行。