| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > set_time_limit() |
| Автор: letsgo 14.3.2009, 11:42 |
| Добрый день. На хостинге стандартное ограничение в 30 секунд. Воспользовался set_time_limit() Однако, возник вопрос, иногда время выполнения скрипта занимает порядка 20 секунд, а иногда и 100 секунд не хватает. Т.е. не подгадать. Если ставить фиксированное значение, то оно может оказаться недостаточным для выполнения скрипта. Есть ли какая-то функция, позволяющая например, останавливать выполнение скрипта и скажем грубо, "начинать вновь с места остановки через n секунд". Ну, или как-то с set_time_limit() придумать что-то можно? Или еще, как решение проблемы, вижу, что-то вроде многопоточности... Но с этим ни разу не сталкивался и как организовать не знаю, но как говорится, если надо, так надо Поэтому вопрос, что лучше в такой ситуации? |
| Автор: NNaarreekk 14.3.2009, 11:54 |
| set_time_limit(0) делает время бесконечным (если конечно сервер не на сейф моде). Но конечно в таком случае если случаем бесконечный цикл получится то пипец! |
| Автор: letsgo 14.3.2009, 12:03 | ||||
| NNaarreekk, ясно. спасибо. А вот про это ничего не можете сказать?
|
| Автор: NNaarreekk 14.3.2009, 12:39 | ||
| Ну можешь после каждого шага(или если в функции цикл,то после каждого круга) проверять время вы полнения и если больше чем надо то return false; А потом как нибудь опять вызываешь, примерно так:
Пример может извращенеский, написал то что пришло в голову! |
| Автор: skyboy 14.3.2009, 20:09 |
тебя порвет хостер за нагрузку на сервер. или сам себя порвешь, если сервер собственный. если задержка будет поболее 0,01 секунды. |
| Автор: NNaarreekk 14.3.2009, 22:33 |
| skyboy, я не понял, откуда нагрузка возьмется?? Ну понимаю что нагрузка увеличится, но если нужно повторно вызвать, то как бы не вызывай все равно нагрузка увеличится! |
| Автор: skyboy 14.3.2009, 22:47 | ||
| конструкция не даст выполнится коду раньше некоторого времени. но сама проверка(вычисление разницы между текущим временем и начальным) отнюдь не "бесплатна". и происходить эта проверка будет не "раз в секунду", а постоянно. вот напиши на любом языке программирования программу типа:
и посмотри на загрузку процессора |
| Автор: NNaarreekk 14.3.2009, 23:34 |
| ОК понятно! А как писать то? |