0

我正在使用 PHP 和 Graphicsmagick,我有一群用户上传批量图像。

这些批次从一个图像运行到数百个,甚至可能是一千个。

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

这需要尽可能实时。

您将如何构建它以获得最佳性能?

4

1 回答 1

3

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

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

于 2011-07-02T19:03:34.790 回答