大批量图像调整大小和存储

时间:2011-07-02 18:36:13

标签: php graphicsmagick

我正在使用PHP和Graphicsmagick,我有很多用户上传批量图片。

这些批次从一张图像到几百张,甚至一千张。

我需要将这些原始上传内容存储在Amazon S3上,我还需要将每个图像调整为三种不同的大小,并将这些副本存储在Amazon S3上。

这需要尽可能实时。

你如何设计这个以获得最佳性能?

1 个答案:

答案 0 :(得分:2)

很容易实现。当用户上传图像时,将其添加到(lpush)消息队列中。当您向队列添加消息时,您不会因为工作(等待)而烦扰您的网站用户,而是离线。我会去redis,因为它非常强大,快速,易于使用。您应该查看redis,因为您也可以将它用于缓存需求甚至更多。很好。接下来,您生成了几个工作进程,这些进程除了处理(blpop)队列中的消息(逐个)之外什么都不做。他们从队列中获取消息,执行任务(图像大小调整),完成后从队列中获取下一条消息。这很简单,也很快。特别是如果你使用PHP扩展编译为C(C是非常快的语言),例如phpredis

P.S:很好的入门教程解释redis => http://simonwillison.net/static/2010/redis-tutorial/(必读;))