目前,我正在晚上使用 Cronjob(PHP CLI)将一些文件从服务器 A 同步到服务器 B,该 Cronjob 使用 LFTP 并将其日志写入特殊的 mysql 表中。我同步的图像是 tiff 文件。
我正在使用 ImageMagick 将此图片转换为一些带有一些附加功能的预览-png 图片(水印、调整大小、剪切路径和嵌入颜色配置文件)
完整命令 here .
那么以最佳方式转换 100 多个(有时有 10 个 - 有时有 250 个以上)图像的“最佳”方法是怎样的?
我的脚本应该是安全的 - 所以每个 tiff 文件总是有网络预览。所以我正在检查所有图像,如果每个图像都有其预览-png - 如果没有 - 生成它们!
我不会在这篇文章中添加过多的代码,所以这里有一个 gist
该脚本将使用 php-fcgi 作为简单的 cron 运行。
这个脚本现在非常“慢”。一个 ImageMagick 命令大约需要 1-2 秒 - 有时超过 15 秒(大文件、复杂路径)。 - 任何 shell_exec
在完成命令时都会保存脚本。
有什么方法可以提高效率吗?
注意:我无法在服务器上安装额外的软件。
最佳答案
如果您不立即需要图像,那么您可以将图像转换放入队列中(类似于 Beanstalk ),并让它处理长时间且密集的操作。
关于php - 如何实现大批量的高性能批量图像转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29234992/