Мне надо запустить скрипт курлом, скрипт делает вычесления около 5минут
Там обработка изображений и формирования документа PDF, вообщем долгий процесс.
Вот мои проведенные действия
php.ini:
max_execution_time = 1800
set_time_limit = 1800
max_input_time = 1800
curl
$url = "http://***/core/components/edit/gen.php?id_order=210";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
$result = curl_exec($ch); // run the whole process
curl_close($ch);
echo $result;
Что еще можно сделать? Выкидывает через 60сек.
Спустя 1 минута, 41 секунда (25.11.2011 - 15:47) linker написал(а):
set_time_limit(0);
Спустя 2 минуты, 21 секунда (25.11.2011 - 15:49) sharki написал(а):
linker
php.ini же приоритетнее нежели set_time_limit(0);
______________________
Добавил set_time_limit(0); тот же результат
php.ini же приоритетнее нежели set_time_limit(0);
______________________
Добавил set_time_limit(0); тот же результат
Спустя 11 минут, 22 секунды (25.11.2011 - 16:01) killer8080 написал(а):
sharki
ignore_user_abort(true);
set_time_limit(0);
Цитата (sharki @ 25.11.2011 - 15:45) |
Что еще можно сделать? Выкидывает через 60сек |
Выкидывает как? max execution time или просто рвется соединение? Скорей всего дело не в php, таймаут tcp сокета истекает.
Спустя 5 минут, 56 секунд (25.11.2011 - 16:07) sharki написал(а):
killer8080
Цитата |
Скорей всего дело не в php, таймаут tcp сокета истекает. |
Мне тоже так кажется
Я в консоле запукаю
через wget или напрямую указывая файл пыху /usr/bin/php-cgi5 -q http://...
Засекаю время и ровно через 60сек выкидывает, без ошибок и т.п, причем wget говорит
HTTP request sent, awaiting response... 504 Gateway Time-out
2011-11-25 17:00:28 ERROR 504: Gateway Time-out.
Спустя 5 минут, 45 секунд (25.11.2011 - 16:12) killer8080 написал(а):
sharki
наверно нужно в скрипте периодически выкидывать пустышки, типа такого
наверно нужно в скрипте периодически выкидывать пустышки, типа такого
$timer = time();
while(...){
...
if((time() - $timer) > 5){
$timer = time();
echo str_pad('', 1024);
}
}
Спустя 2 минуты, 26 секунд (25.11.2011 - 16:15) sharki написал(а):
killer8080
Кстати, как я гвоорил проходит 60сек выкидывает
Потом смотрю через минуты 2-3 появляется мой архив, причем нормальный, полностью сгенерированный, исправный. Тут что-то надо сделать, но что...
Кстати, как я гвоорил проходит 60сек выкидывает
HTTP request sent, awaiting response... 504 Gateway Time-out
2011-11-25 17:12:18 ERROR 504: Gateway Time-out.
Потом смотрю через минуты 2-3 появляется мой архив, причем нормальный, полностью сгенерированный, исправный. Тут что-то надо сделать, но что...
Спустя 1 минута, 39 секунд (25.11.2011 - 16:16) killer8080 написал(а):
Цитата (sharki @ 25.11.2011 - 16:15) |
Тут что-то надо сделать, но что... |
вантусом кидаться, как я выше показал.
Спустя 42 секунды (25.11.2011 - 16:17) sharki написал(а):
killer8080
Щас попробую)
Щас попробую)
Спустя 19 минут, 41 секунда (25.11.2011 - 16:37) sharki написал(а):
Уже что-то, там я еще че нить помудрю) Спасибо)
Спустя 2 минуты, 11 секунд (25.11.2011 - 16:39) T1grOK написал(а):
set_time_limit(0) - не работает при включенном safe mode. Буквально вчера голову ломал над подобной задачей.
Спустя 16 минут, 3 секунды (25.11.2011 - 16:55) sharki написал(а):
T1grOK
Выключен. Тут соединение сбрасывается походу, а скрипт дальше херачит, и потом через некоторое время, после того как выполнится отдает то, что я у него просил, т.е архив в папке...только думаю как бы время округлять или тупо запускать следующий процесс, ведь надо фигачить несколько архивов по каждой записи...
Выключен. Тут соединение сбрасывается походу, а скрипт дальше херачит, и потом через некоторое время, после того как выполнится отдает то, что я у него просил, т.е архив в папке...только думаю как бы время округлять или тупо запускать следующий процесс, ведь надо фигачить несколько архивов по каждой записи...
Спустя 12 минут, 52 секунды (25.11.2011 - 17:08) killer8080 написал(а):
Цитата (sharki @ 25.11.2011 - 15:55) |
.только думаю как бы время округлять или тупо запускать следующий процесс, ведь надо фигачить несколько архивов по каждой записи... |
Ну если ответ скрипта не важен, можно тупо пускать процессы в бэкграунде, либо вилками (если хостинг позволяет), либо теми же сокетами.
Спустя 3 часа, 23 минуты, 21 секунда (25.11.2011 - 20:31) sharki написал(а):
killer8080
Где я работаю сервера в соседней комнате стоят) Думаю если буду насиловать серверы, никто не заметит
Где я работаю сервера в соседней комнате стоят) Думаю если буду насиловать серверы, никто не заметит
Спустя 32 минуты, 12 секунд (25.11.2011 - 21:03) killer8080 написал(а):
Спустя 2 дня, 11 часов, 29 минут, 58 секунд (28.11.2011 - 08:33) linker написал(а):
sharki
Приоритет имеют те значения конфигурации PHP, которые задаются уже из скрипта во время исполнения. Просто не все параметры возможно переопределить таким образом.
Приоритет имеют те значения конфигурации PHP, которые задаются уже из скрипта во время исполнения. Просто не все параметры возможно переопределить таким образом.