并行下载ImageMagick PHP的图像

时间:2015-05-15 15:08:14

标签: php curl amazon-web-services web-scraping curl-multi

我正在运行一个Imagick脚本,该脚本会以各种方式下载数百个图像并将它们一起处理。该脚本目前花费大约95%的执行时间来下载图像,并且正在同步获取它们,因此可以从异步获取它们中获益。

for ($i=0;$i<$quantity;$i++) {

  $a=$arranged[$i];
  $url  = $a->url;

  /* time new image operation */
    $download_time_start = getTime();
    $temp=new Imagick($url);
    $download_time_end = getTime();
    $download_time += ($download_time_end - $download_time_start);
  /* end time */

我正在尝试找到使下载并行发生的最佳方式。该应用程序目前驻留在AWS上。

选项1:使用curl_multi_exec之类的东西在PHP脚本中并行收集图像。

选项2:使用亚马逊的SQS和工作服务等内容下载图片,将图片存储在S3中,然后在完成后处理。

直观地选项1感觉更快但更危险,因为大量的大图像可能会为该实例提供可用的RAM。我也在努力寻找任何使用curl_multi以这种方式获取图像的人的例子。选项2感觉效率低下,因为在实例和S3之间写入和读回所有图像所花费的时间可能很长。

任何建议表示赞赏

0 个答案:

没有答案