curl — PHP-блокировка запроса к удаленным веб-сервисам с жадностью

Я пытаюсь выполнить запрос к веб-сервису для загрузки больших файлов на мой сервер. Мое веб-приложение в Laravel 4, и я использую жадность, чтобы сделать запрос.

Проблема в том, что после запуска загрузки файла из удаленной службы я не могу выполнить какой-либо запрос к своему приложению, пока не будет завершен ответ на загрузку.

Вот пример моего кода:

    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 для загрузки файлов на сервер. Но я хотел бы иметь больше контроля над запросами и ответами.

Любая помощь будет оценена,

Спасибо

0

Решение

Вы могли бы использовать рабочие очереди запустить загрузку в фоновом режиме:

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

$job->delete();
});

Вот хорошая статья о том, как Настройка Laravel с Beanstalkd, но вы также можете использовать другие, такие как IronMQ, Amazon SQS, Redis.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]