转换大量图像的最佳实践(imagick 和 PHP)
Best practice in converting large volumes of images (imagick and PHP)
我已经设置并完成了将图像从 jpeg/png 转换为 webp 的编码。我将使用它来转换数百张图像。但是 PHP 有超时限制,将其更改为大数字有点不正统(或者是吗?)。现在我的做法是使用浏览器执行页面,然后它开始转换,但在转换所有图像之前达到超时限制,所以我必须刷新页面,以便它再次开始转换。这已经在工作了。就是感觉不对,所以我的问题是,您有什么建议可以更恰当地做到这一点吗?或者更传统?
希望有人能帮助我。
谢谢
您可以采取的一些措施:
- 通过命令行而不是通过网络浏览器执行 PHP。命令行版本没有最大执行时间限制。
- 将作业分成块。找出一种分解图像的方法,以便您可以一次转换批次。
- 考虑实施异步作业队列。如果您要转换这些图像以响应用户与您网站的交互,请考虑通过作业异步安排转换为 运行。这也将使您能够利用上面的第 1 点。
- 考虑运行在不同的服务器上运行脚本。您不必 运行 在您的生产 Web 服务器上执行这样的工作。您可以设置一个单独的服务器来执行这种操作,这样就不会占用您用户的处理能力。如果转换不经常发生,它甚至可以是一个临时服务器,使用后关闭。
我已经设置并完成了将图像从 jpeg/png 转换为 webp 的编码。我将使用它来转换数百张图像。但是 PHP 有超时限制,将其更改为大数字有点不正统(或者是吗?)。现在我的做法是使用浏览器执行页面,然后它开始转换,但在转换所有图像之前达到超时限制,所以我必须刷新页面,以便它再次开始转换。这已经在工作了。就是感觉不对,所以我的问题是,您有什么建议可以更恰当地做到这一点吗?或者更传统?
希望有人能帮助我。
谢谢
您可以采取的一些措施:
- 通过命令行而不是通过网络浏览器执行 PHP。命令行版本没有最大执行时间限制。
- 将作业分成块。找出一种分解图像的方法,以便您可以一次转换批次。
- 考虑实施异步作业队列。如果您要转换这些图像以响应用户与您网站的交互,请考虑通过作业异步安排转换为 运行。这也将使您能够利用上面的第 1 点。
- 考虑运行在不同的服务器上运行脚本。您不必 运行 在您的生产 Web 服务器上执行这样的工作。您可以设置一个单独的服务器来执行这种操作,这样就不会占用您用户的处理能力。如果转换不经常发生,它甚至可以是一个临时服务器,使用后关闭。