Как в PHP отменить ограничение времени выполнения скрипта?

2010-05-17

Обычно в PHP всем скриптам выделяется ограниченное время на выполнение и составляет оно 30 секунд.
Если php-скрипт выполняется дольше, то его работа прерывается с ошибкой:
Fatal error: Maximum execution time of 30 seconds exceeded.
Это сделано для того, чтобы не перенагружать сервер. Еще данный механизм можно рассматривать, как защиту от некорректных скриптов, содержащих «вечные циклы».

Бывают же ситуации, когда php-скрипт может выполнятся дольше чем 30 секунд, и на это влияют независящие от нас факторы. К примеру: человек подгружает файл на очень медленном соединении с интернетом.

Существует механизм, с помощью которого можно изменить значение по умолчанию. Делается это с помощью функции set_time_limit().

Пример 1: Выделение php-скрипту максимального времени выполнения в 3 минуты

set_time_limit(180);

Пример 2: задаем php-скрипту неограниченного времени выполнения

set_time_limit(0);

Пользуясь этой функцией — будьте осторожны! Неумелое ее использование может быть причиной перенагрузки сервера.



5 комментариев на «Как в PHP отменить ограничение времени выполнения скрипта?»

  1. Игорь:

    За set_time_limit(0); спасибо!!! А то парился искать а всё на самом деле проще ))))

  2. Тон:

    А реально ограничить число потребляемых ресурсов процессора? Скрипт формирует PDF, а на хостинге лимит 5 сек при нагрузке более 60%. Вот хочу растянуть время выполнения скрипта=) Или придется разбираться с VPS?=)

  3. admin:

    Специальные функции вряд ли есть..

    Можно, к примеру, использовать sleep(), и делать время простоя в процессе генерации..
    http://php.net/manual/ru/function.sleep.php

  4. Простой:

    То есть лучше не ставить более 30 секунд? А если возникает ошибка, то лучше переработать скрипты?

  5. admin:

    А бы сказал, что лучше не снимать ограничение по времени вообще (значение: 0), а поставить какое-то разумное достаточное значение.
    Просто не всегда все зависит от написаного скрипта. Может быть много внежних независиых от нас факторов.

Добавить комментарий