通过 cron 作业/作业队列使用 ImageMagick 异步调整图像大小

标签 asynchronous cron imagemagick thumbnails image-resizing

这个问题的重点是为由 cron 作业/作业队列引导的异步图像大小调整过程找到一个完美的解决方案。

图像正在上传并以原始大小保存在服务器上。调整大小过程会拾取它们,调整大小并将它们保存为两种新尺寸。对于这项工作,我将 Imagemagick 与以下设置一起使用 [nice -n 19 convert -density 500 "' . $fullpath . '"-resample ' . $dpi 。 ' "' . $destFolder . '/%d.jpg"']。 “nice”不会阻止命令使用 100% CPU。它所做的是说,如果任何其他进程需要 CPU,它将获得比“nice”进程更高的优先级。如您所见,这只是一些改进:( 因为我敢肯定,如果用户同时上传图片,服务器肯定会崩溃。

我的意图是通过服务器处理所有图像,而不是通过 Flash 或 Java 在本地处理。因此,如果我无法获得更多的服务器 CPU 和 RAM,我认为我需要通过 cron 作业实现一个异步调整大小的作业队列,该作业提供有限的 CPU 和内存使用。在处理图像时,用户会得到一个带有信息的缩略图,“您的图像将很快可用”,以阻止他再次上传相同的图像。这是我目前的基本想法。

我在 Debian Linux 服务器上为这个 Web 应用程序使用 PHP 框架。非常感谢任何有关此类 cron 作业/作业队列/实现想法的帮助、指导技巧或信息资源!!!

非常感谢!

干杯

汤米

最佳答案

我不知道现成的解决方案,但如果您可以制作一个可以从目录/数据库中选择和上传图像的 PHP 文件 - 您可以在 www.iron.io 上设置一个工作人员并完成此任务!

可能实现一个 REST API 来远程交互也是一个好主意。祝你好运!

关于通过 cron 作业/作业队列使用 ImageMagick 异步调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455584/

相关文章:

c# - 紧凑型框架 2.0 : is it possible to abort an asynchronous Web Services call?

node.js - NodeJS + 异步 : which control flow option to chose?

c# - 等待按钮点击

mysql - Cron 作业每分钟超过 100 个,太多了吗?

python - 通过 cron 运行时获取 subprocess.Popen stdout

ruby - RMagick - 如何将网格图像裁剪成图像数组?

c - 如何绕过已连接的聚会

MySQL 转储每晚更新到本地 VM

image - 隔行扫描 .png 文件的大小如何小于原始文件?

pdf - 为 PDF 添加白色边框(更改纸张格式)