PHP使用guzzle阻止对远程Web服务的请求

PHP使用guzzle阻止对远程Web服务的请求,php,curl,laravel-4,nonblocking,guzzle,Php,Curl,Laravel 4,Nonblocking,Guzzle,我正在尝试执行对web服务的请求,以便将大型文件下载到我的服务器。我的web应用程序在Laravel4中,我正在使用guzzle发出请求 问题是,从远程服务开始文件下载后,在下载响应完成之前,我无法执行对我的应用程序的任何请求 下面是我的代码示例: public function download($id, $url, $filename) { // some data for request $request = $httpClient->

我正在尝试执行对web服务的请求,以便将大型文件下载到我的服务器。我的web应用程序在Laravel4中,我正在使用guzzle发出请求

问题是,从远程服务开始文件下载后,在下载响应完成之前,我无法执行对我的应用程序的任何请求

下面是我的代码示例:

    public function download($id, $url, $filename)
    {
        // some data for request

        $request = $httpClient->get($downloadFileUrl, array(
               'future' => true, 
               'cookies' => true, 
               'save_to' => $filename
               )
         );

         return $cookieRequest;
     }
过去,我使用exec启动curl或wget脚本将文件下载到服务器。但我希望对请求和响应有更多的控制权

任何帮助都将不胜感激

谢谢

您可以在后台运行下载:

Queue::push(function($job)
{
    $request = $httpClient->get($downloadFileUrl, array(
        'future' => true, 
        'cookies' => true, 
        'save_to' => $filename
    ));

    $job->delete();
});

这是一篇关于如何使用的好文章,但您也可以使用其他工具,如IronMQ、Amazon SQS、Redis。

谢谢,我将对此进行研究。