Есть скрипт, который получает данные по API.(см.ниже)
Объем данных большой(30тыс товаров). За каждый Запуск получается информация на 100 товаров, время работы примерно 40сек/100товаров. Запускается через крон.
На локалке работает. А вот на сервере происходит получение 300-500 товаров и источник как-бы перестает отдавать данные. Первоначально скрипт просто подвисал, затем я добавил тайм-аут на соединение CURLOPT_CONNECTTIMEOUT в 5 сек и все соединения рвутся по таймауту(стандартное время отдачи 0,2-0,8 сек в зависимости от загрузки сервера-источника). Время выполнения 502-503сек, как раз 5сек*100товаров.
Не могу понять почему на локалку все отдается, а на VPS сервер немецкий ограниченное количество по выдаче. Так же пробовал на другой VPS(в РФ), отработал около 1200 товаров, полет нормальный. Впечатление что проблемные настройки сервера.
if ($curl = curl_init()) {
// устанавливаем параметры предстоящего запроса
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/xml", "Content-Type: application/xml", "Authorization: Basic " . base64_encode($USER_NAME.":".$USER_PASS)));
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);//Сколько времени ждем ответ от сервера в секундах.
$out = curl_exec($curl);