[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, User |
|
|
| ||
Fatal error: Maximum execution time of 30 seconds exceeded in [...] on line [...] Как сделать так, чтобы выполнение PHP-скрипта не прерывалось через 30 секунд? В скрипте идёт масштабный сбор данных, который может продолжаться и дольше. Время - не главное. Главное - выполнение до конца. |
| ||
set_time_limit(0); не сработает если php в safe mode. |
| ||
Вот спасибо |
| ||
2 Multfiltm: Как может быть "время не важное" ?! Это же апачу серпом по balls. Дай мне твой сервер, где твой скрипт работает по неважно сколько времени. Через полчаса можешь звонить в техсапорт хостинга, чтоб прибивали все, до сих пор работающие, процессы httpd. Блин, это ж надо так глубоко не понимать принципы Web-апликейшен! Михаил. PS. Хм. а может я не прав? Может это у тебя the Queue Manger такой, он должен бесконечно работать, и он расставляет все долгоиграющие запросы по очередям, выдаёт JavaScript-enabled окошечки юзерам, с estimated running time и просьбой подождать до завтра? Тогда извини. |
| ||
Авторизация запуска долгоиграющего процесса. Хотя в asp.net я бы просто поток новый запустил или написал небольшой сервис и связал ремоутингом для реализации отмашки на запуск. Но виндовс ОС отсталая, это мы уже выясняли... :) |
| ||
никакого серпа, как push организовать и всё |
| ||
как вариант для php - форкнуть процесс pcntl_fork(); более извращеннее обрабатывать процесс поэтапно (например по 100 записей из бд) и перегружать страницу meta refresh или javascript`ом каждые N секунд.. |
| ||
>> В скрипте идёт масштабный сбор данных, который может продолжаться и дольше. Время - не главное. Главное - выполнение до конца. так ведь эти данные ещё и показать потом надо? |
| ||
Может быть так? ===Begin of .htaccess=== php_value max_execution_time 0 ===End of .htaccess=== |
| ||
Дорогие товарищи. Вы опять за старое. Если стоит условие, что "масштабный сбор данных" должен работать независимо долго, то я повторяю: не для вебморды это задача. Правильнее надо понимать, что можно а что нельзя делать в web-application. Правильнее -- иметь демона скедулёра, который и заботится о масштабных работах. А морда должна только показывать. В ограниченное ей время. А вы прям как дети,.. :( |
| ||
Это всё конечно правильно, но когда надо увеличить время до 40 секунд... человек заморачиваться таким не особо хочет. |
| ||
> А морда должна только показывать. Морда должна быть удобной, и иногда через неё желательно, чтобы можно было делать тяжелые вещи. К примеру отпарсить выгрузку базы данных нажатием одно |
| ||
> А морда должна только показывать. Морда должна быть удобной, и иногда через неё желательно, чтобы можно было делать тяжелые вещи. К примеру отпарсить выгрузку базы данных нажатием одной кнопки, а не мучительными коннектами через неудобные вещи вроде putty. |
| ||
терминал это концептуально :) красоту и удобство морд это не отменяет, как и морды не отменяют правильные вещи :) раз уж отошли от оригинального вопроса (думается он закрыт уже ;) хотелось бы понять, какой криминал в тяжелом или долгом процессе апача? какой-то вывод на экран категорически не подразумевается в процессе или наоборот подразумеваются десятки тысяч долго-тяжелых апаче-деток? или тут суть в "звонить в техсапорт", т.е. подразумевается жестковатое распределение ресурсов по хостерам? |
| ||
Тема действительно давно закрыта. Первоначальное решение меня вполне устроило. Тем более, что "не успевал" Апач в комплекте Денвера на локалхосте. Нормальный-* сервер, хоть и тоже Апачевский, всё замечательно делал за считанные секунды. Сами понимаете, что-то подобное дома ставить не реально. Тем более, только лишь на пол года. *- здесь - отдельная машина, выделенная под веб-сервер. |