[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Снять ограничение по времени на выполнение PHP
sharki
Всем привет, как снять ограничение на выполнение скрипта по времени?
Мне надо запустить скрипт курлом, скрипт делает вычесления около 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); тот же результат

Спустя 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сек выкидывает


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
Где я работаю сервера в соседней комнате стоят) Думаю если буду насиловать серверы, никто не заметит user posted image

Спустя 32 минуты, 12 секунд (25.11.2011 - 21:03) killer8080 написал(а):
sharki
ну тогда проблем быть не должно smile.gif
вот статейка по вилкам, может будет полезна wink.gif

Спустя 2 дня, 11 часов, 29 минут, 58 секунд (28.11.2011 - 08:33) linker написал(а):
sharki
Приоритет имеют те значения конфигурации PHP, которые задаются уже из скрипта во время исполнения. Просто не все параметры возможно переопределить таким образом.
Быстрый ответ:

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