[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Есть ли максимальное количества сессий curl в php?
Scat
Наверно не совсем правильно написал тему, но по другому никак не мог сформулировать.
Есть большой сервер с сайтом, на котором около 3000 пользователей постоянно.
На сайте есть пара услуг, которая пользуется популярностью и которая использует curl.
Сам принцип примитивен. Идет цикл, в котором с помощью curl загружаем несколько страниц, парсим и выводим результат на экран.

Бывают моменты, когда скрипт сам по себе останавливается в самом начале выполнения, без всяких причин, пересмотрел код раз 100, переписывал, переделывал узкие моменты, вроде от всего избавился, но все равно возникают исключения. Естественно отчет об ошибках отключен и неизвестно что выводит на экран. Исключение не критическое, но работу останавливает и часто пользователь просто не видит результат работы. Так же ставил перехват всех исключений, ничего хорошего из этого не вышло.
У себя локально все проверял - все работает без проблем, тестировал огромное количество раз.

Вопрос заключается в чем, в php есть ли какое - то ограничение на максимальное количество сессий curl в один момент?

Если нет, то в чем может быть проблема?





Спустя 6 минут, 57 секунд (14.08.2009 - 13:54) Oyeme написал(а):
Я парсил более 5 часов сайт..wink.gif

И всё отлично.

Чему уделить внимания так

PHP
set_time_limit(0);
ini_set("memory_limit","1024M");
ini_set("max_execution_time","10000"); -



Записиывай все ошибки в лог файл и найдёшь проблему.

Спустя 9 минут, 28 секунд (14.08.2009 - 14:04) Scat написал(а):
Спасибо за совет.
Такой вопрос, само выполнение curl происходит в классе.
А создание класса и вызов метода из другого файла. Изменение этих директив указывать в файле или классе?

Спустя 38 минут, 9 секунд (14.08.2009 - 14:42) Oyeme написал(а):
Само создание класса - ты иммел введу "создания экзеспляра класса" ? И уже обращение к методам.

Приведи пример.

Спустя 46 минут, 19 секунд (14.08.2009 - 15:28) Scat написал(а):
да, создание экземпляра класса
PHP
/*class*/
<?
class 
getPage{
function 
getPagebyCurl($url){
/*получение результата*/
return $result;
}
function 
Parser($content){
/*получение результата*/
return $result;
}
}
?>

/*файл выполенения*/
<?
echo $header;
$cl = new getPage();
for(;;){
echo 
$cl->Parser($cl->getPagebyCurl("http://ya.ru"));
}
echo 
$fotter;


коротенький псевдопример, так и происходит
но обрывается где-то так, что видно $header, а $fotter с результатом не видно

Спустя 15 минут, 49 секунд (14.08.2009 - 15:44) Oyeme написал(а):
Цитата (Scat @ 14.08.2009 - 12:28)
коротенький псевдопример, так и происходит
но обрывается где-то так, что видно $header, а $fotter с результатом не видно

Проверь парсинг.
Узнай почему он падает.

Я так понел у тебя работает цикл по странично ,так?Или любая другая страница в цикле.

PHP
echo $header;
$cl = new getPage();
for(
$i=1;$i<10;$++){
echo $cl->Parser($cl->getPagebyCurl("http://ya.ru/{$}.html"));
}
echo $fotter;


проверяй
PHP
echo $cl->Parser($cl->getPagebyCurl("http://ya.ru/{$}"));

Он не может упасть не написав это в лог.

Спустя 16 минут, 50 секунд (14.08.2009 - 16:01) Scat написал(а):
Парсер работает 100% правильно, в логах не вижу ошибок по нему.
Страница одна, параметры на нее разные, 100% выдает всегда правильный результат, так же проработаны условия возврата результата на неверные параметры.
В логах нигде не увидел ошибок именно по парсеру или по curl.

Бывает даже как только начнешь цикл - сразу обрывается проверка, буквально через пару секунд, не успев подгрузить страницу и пропарсить результат.

Может быть вообще проблема в интернет канале сервера?
т.к. у меня локально все 100% работает без нареканий, пытался смоделировать подобное состояние сервера, когда куча пользователей, но ничего хорошего из этого не получилось. Все так же без проблем выдавал реультат

Спустя 7 минут, 26 секунд (14.08.2009 - 16:08) Oyeme написал(а):
Бывает такие загадки,незнаешь "почему" и "что".

Остаёться искать и догадываеться почему и "что ему мешает" smile.gif


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.